Подтвердить что ты не робот

Как программно переопределить "Google Voice Search" над "Samsung на базе Vlingo"?

Некоторые устройства (например, Samsung Galaxy S3) поставляются с предустановленной Samsung на основе Vlingo вместо Google Voice Search.

В моем приложении я хотел бы программно переопределить, какой механизм речевого распознавания использовать, чтобы Google Voice Search всегда использовался моим приложением.

Итак, мои вопросы:

  • Есть ли способ сказать, какие версии распознавания установлены установлены? (Если да, то как?)
  • Есть ли способ указать, какой речевой распознавание движок выбран в пользовательских настройках? (Если да, то как?)
  • Есть ли программный способ выбора переопределить, чтобы мое приложение всегда вызывало Google Voice Search? (если да, то как?)

Помощь будет оценена

4b9b3361

Ответ 1

Ответ на все ваши вопросы - "да".

createSpeechRecognizer может быть присвоено имя пакета используемого распознавателя. Поэтому, если вы знаете имя пакета, вы можете переопределить значение по умолчанию.

Чтобы обнаружить доступные службы, используйте:

List<ResolveInfo> services =
    getPackageManager().queryIntentServices(
        new Intent(RecognitionService.SERVICE_INTERFACE), 0);

Для более подробной информации изучите исходный код Babble. Я не знаю, если это лучший способ сделать это (любая обратная связь приветствуется), но он работал на моих устройствах. (Babble в целом предполагает Android 4+, но часть обнаружения распознавателя речи также может работать и в более ранних версиях.)