Почему Android (Jelly Bean) игнорирует дополнительный узнаватель (Kõnele)?

StackOverflow https://stackoverflow.com/questions/19850597

Вопрос

Я установил открытый исходный код Kõnele (исходный код) для изучения того, как написать и зарегистрировать пользовательскую службу распознавания речи. В качестве первого шага, прежде чем углубиться в исходный код, я попытался убедиться, что он действительно работает, как я ожидал. Итак, я пошел к своему телефону System settings > Language & input > Voice recognizer и выбрал Kõnele в качестве распознавания системы:

enter image description here

Затем я попробовал различное приложение в телефоне, которое представляет клавиатуру с опцией микрофона, ожидая, что когда я касаюсь символа MIC, будет использоваться Kõnele. Вместо этого, однако, система всегда появляется встроенным голосовым поиском Google.

Почему это?

Я пропустил дополнительные настройки, которые мне нужно настроить (как пользователь), чтобы сделать эту работу?

Это ограничение «по дизайну» ОС Android?

Можно ли сказать Android всегда использовать другой Incordizerintent, который не является поиском голоса Google? Если да, то как?

Обновлять: Мне удалось найти один приложение, которое кажется нет Чтобы игнорировать дополнительный incordizerintent: Google Maps:

enter image description here

Для меня это говорит о том, что это как -то связано с Android Разрешение намерений. Анкет Но тогда почему некоторые приложения не вызывают этого "Завершить действие с помощью" Диалог, пока Google Maps делает?

Это было полезно?

Решение

Я думаю, что вы сделали все, что можете, как пользователь, но приложение, которое хочет использовать распознавание речи, конечно, может игнорировать вашу конфигурацию. Например, он может непосредственно выбрать конкретную реализацию распознавания речи, построив распознавание что -то вроде этого:

SpeechRecognizer.createSpeechRecognizer(this,
    new ComponentName("com.google",
                      "com.google.Recognizer");
);

В этом случае ваш единственный вариант - удалить или отключить эту конкретную реализацию и надеяться, что приложение вернется к общему методу:

SpeechRecognizer.createSpeechRecognizer(this);

К сожалению, в какой -то момент Google начал продвигать идею, что приложения напрямую ссылаются на распознавание речи Google (см. Добавьте голосовой набор в свой IME) Сейчас так много приложений для клавиатуры (см. EG проблема, которую я поднял со SwiftKey), и ваш единственный вариант - найти тот, который не ...

Также может случиться так, что приложение отправляет намерение, которое Kõnele не поддерживает (поддерживаемые намерения перечислены в манифест), но это имеет смысл поддержать в приложении для распознавания речи. В этом случае это будет запрос функции для Kõnele.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top