作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
尝试通过 RecognizerIntent.ACTION_WEB_SEARCH
在我的应用中使用 Google 的“语音操作”。根据文档,我应该能够通过 RecognizerIntent.EXTRA_RESULTS
获得语音识别结果。似乎下面代码中的 onActivityResult()
是在 startActivityForResult()
之后立即调用的,结果还不正常。谁能帮忙?谢谢!
int VOICE_ACTIONS_CODE = 1234 ;
Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH) ;
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) ;
startActivityForResult(intent, VOICE_ACTIONS_CODE) ;
. . .
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == VOICE_ACTIONS_CODE) {
if(resultCode == RESULT_OK) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS) ;
// The following should print speech recog. results
Log.w("Results from Voice Actions:", result.get(0)) ;
}
}
super.onActivityResult(requestCode, resultCode, data) ;
}
最佳答案
如果结果不是 RESULT_OK
是因为出于某种原因 Intent 没有顺利进行。您的应用程序 list 中是否有互联网连接和相应的权限?
如果没有,请尝试添加它们。
顺便说一句,如果你没有得到 RESULT_OK
,你得到的 resultCode
的值是多少?
@@@@@@@@编辑@@@@@@@@
现在我完全理解你的问题了。
问题如下,根据 reference,您使用 RecognizerIntent.ACTION_WEB_SEARCH
操作启动 Intent,但它从不返回结果。 , 它应该。它在显示“Speak Now”对话框时调用onActivityResult
,不可能返回任何语音识别结果。
然而,它会触发相应的 Action 。但我同意你的看法,这种行为与文档中描述的不一样。
对不起,我只能说这看起来像是 API 的实现错误。
关于android - 如何从谷歌的 "Voice Actions"获取语音识别结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795599/
我是一名优秀的程序员,十分优秀!