我正在开发一个应用程序,用户可以在其中说出命令并且它将被执行。就像 Google 的“语音搜索”应用程序一样。我想使用一组与语音搜索相关的命令。
我的代码如下:
@Override
public void startVoiceRecognitionActivity() {
// TODO Auto-generated method stub
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Command me");
startActivityForResult(intent, REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_CODE: {
ArrayList<String> matches = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
ApplicationDebug.printlog("got inside onactivityresult");
String spokenText = matches.get(0);
Toast.makeText(getApplicationContext(), spokenText,
Toast.LENGTH_LONG).show();
// super.onActivityResult(requestCode, resultCode, data);
break;
}
}
}
在某个按钮上单击我正在调用startVoiceRecognitionActivity()
。
它正在正确检测语音,但此处未发生操作。我的意思是,如果我说“打开计算器”,它会正确显示文本,但不会打开计算器应用程序。