0
我正在研究android.speech
程序包的工作原理,我发现语音识别器忽略了与意图RecognizerIntent.ACTION_WEB_SEARCH
一起使用的大多数附加信息。ACTION_WEB_SEARCH识别器识别器的可用选项
- 如果我使用
RecognizerIntent.EXTRA_LANGUAGE
extra设置语言,则指定的语言将被忽略,但始终使用设备的默认语言。 - 如果我使用
RecognizerIntent.EXTRA_PROMPT
设置文本,则不显示此文本。 - 如果我使用
startActivityForResult
方法开始语音识别的活性,则语音识别器调用onActivityResult
,但第二个参数(resultCode
)总是RESULT_CANCELED
,第三个参数(数据Intent
)总是null
。这种行为可能是由于这种意图类型的目的是在网上执行搜索。出于同样的原因,如果我使用RecognizerIntent.EXTRA_MAX_RESULTS
来设置最大结果数,则将忽略指定的值。
我发现此行为,但official documentation表示这些选项也可以用于ACTION_WEB_SEARCH
意图。
为什么语音识别系统的实际行为与官方文档中陈述的不同?
那么,我已经使用了'ACTION_RECOGNIZE_SPEECH',并且验证了所有附加工作。但我不明白为什么一些额外功能不适用于'ACTION_WEB_SEARCH':可能这种行为的原因是这种意图不会将结果返回给调用活动。 我很惊讶'EXTRA_LANGUAGE'额外不起作用:如果我设置了另一种语言而不是默认语言,“现在讲话”对话框显示指定的语言,但不能识别说出的单词。相反,“EXTRA_LANGUAGE”额外的工作使用了“ACTION_RECOGNIZE_SPEECH”意图。 – enzom83 2012-03-23 12:26:04
我同意相同的语言字符串应该适用于这两种意图 – gregm 2012-03-23 13:13:45