Доступные опции для ACTION_WEB_SEARCH RecognizerIntent - PullRequest
1 голос
/ 22 марта 2012

Я изучаю, как работает пакет android.speech, и заметил, что большинство дополнений, используемых с намерением RecognizerIntent.ACTION_WEB_SEARCH, игнорируются распознавателем речи.

  • Если я установил язык с помощью RecognizerIntent.EXTRA_LANGUAGE extra, указанный язык игнорируется, но всегда используется язык устройства по умолчанию.
  • Если я задаю текст с помощью RecognizerIntent.EXTRA_PROMPT, этот текст не отображается.
  • Если я начинаю распознавание речи с использованием метода startActivityForResult, то распознаватель речи вызывает onActivityResult, но второй аргумент (resultCode) всегда RESULT_CANCELED и третий аргумент (данные Intent) ) всегда null. Такое поведение, вероятно, связано с тем, что целью этого типа намерений является поиск в сети. По той же причине, если я установил максимальное количество результатов, используя RecognizerIntent.EXTRA_MAX_RESULTS, указанное значение игнорируется.

Я обнаружил такое поведение, но в официальной документации говорится, что эти опции также можно использовать для намерения ACTION_WEB_SEARCH.

Почему реальное поведение системы распознавания голоса отличается от того, что указано в официальной документации?

1 Ответ

1 голос
/ 23 марта 2012

Я думаю, что вы используете неправильное действие.Вместо ACTION_WEB_SEARCH используйте ACTION_RECOGNIZE_SPEECH.

. Если вы это сделаете, onActivityResult будет вести себя так, как вы ожидаете, и ваша активность будет контролировать интерпретацию результатов распознавания.*

Кстати, когда вы устанавливаете ACTION_WEB_SEARCH, вы делегируете обработку результатов в Android.Исходя из того, что говорит пользователь, Android может запустить веб-браузер или запустить электронную почту (если пользователь говорит «электронная почта»).Из-за этого имеет смысл, что ваша активность не получает никакой полезной информации, хотя я думаю, что она все равно должна учитывать RecognizerIntent.EXTRA_LANGUAGE.

...