ACTION_WEB_SEARCH RecognizerIntent的可用选项

时间:2012-03-22 14:44:59

标签: android speech-recognition

我正在研究android.speech包的工作原理,我注意到语音识别器会忽略与意图RecognizerIntent.ACTION_WEB_SEARCH一起使用的大部分内容。

  • 如果我使用RecognizerIntent.EXTRA_LANGUAGE extra设置语言,则会忽略指定的语言,但始终使用设备的默认语言。
  • 如果我使用RecognizerIntent.EXTRA_PROMPT设置文字,则不会显示此文字。
  • 如果我使用startActivityForResult方法启动语音识别活动,则语音识别器会调用onActivityResult,但第二个参数(resultCode)始终为RESULT_CANCELED且第三个参数(数据Intent)始终为null。此行为可能是由于此类意图的目的是在Web上执行搜索。出于同样的原因,如果我使用RecognizerIntent.EXTRA_MAX_RESULTS设置最大结果数,则忽略指定的值。

我发现了这种行为,但official documentation表示这些选项也可以用于ACTION_WEB_SEARCH意图。

为什么语音识别系统的实际行为与官方文档中的内容不同?

1 个答案:

答案 0 :(得分:1)

我认为你正在使用错误的行动。而不是ACTION_WEB_SEARCH,请使用ACTION_RECOGNIZE_SPEECH

如果您这样做,onActivityResult将按预期行事,您的活动将控制解释识别结果。

顺便说一句,当您设置ACTION_WEB_SEARCH时,您将结果的处理委派给Android。根据用户的说法,Android可能会启动网络浏览器,也可能会启动电子邮件(如果用户说“电子邮件”)。因此,有意义的是,您的活动没有收到任何有用的信息,尽管我认为它仍然应该考虑到RecognizerIntent.EXTRA_LANGUAGE。