Как программно переопределить "Google Voice Search" над "Samsung на базе Vlingo"?
Некоторые устройства (например, Samsung Galaxy S3) поставляются с предустановленной Samsung на основе Vlingo вместо Google Voice Search.
В моем приложении я хотел бы программно переопределить, какой механизм речевого распознавания использовать, чтобы Google Voice Search всегда использовался моим приложением.
Итак, мои вопросы:
- Есть ли способ сказать, какие версии распознавания установлены установлены? (Если да, то как?)
- Есть ли способ указать, какой речевой распознавание движок выбран в пользовательских настройках? (Если да, то как?)
- Есть ли программный способ выбора переопределить, чтобы мое приложение всегда вызывало Google Voice Search? (если да, то как?)
Помощь будет оценена
Ответы
Ответ 1
Ответ на все ваши вопросы - "да".
createSpeechRecognizer может быть присвоено имя пакета используемого распознавателя. Поэтому, если вы знаете имя пакета, вы можете переопределить значение по умолчанию.
Чтобы обнаружить доступные службы, используйте:
List<ResolveInfo> services =
getPackageManager().queryIntentServices(
new Intent(RecognitionService.SERVICE_INTERFACE), 0);
Для более подробной информации изучите исходный код Babble. Я не знаю, если это лучший способ сделать это (любая обратная связь приветствуется), но он работал на моих устройствах. (Babble в целом предполагает Android 4+, но часть обнаружения распознавателя речи также может работать и в более ранних версиях.)