我的应用程序中有谷歌语音识别功能。
现在我正试图通过声音开始行动 这是我的onActivityResult
中的代码 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
// add commands
}
super.onActivityResult(requestCode, resultCode, data);
}
所以我将从数组'匹配'中获取关键字。那么'匹配'的数组应该是这样的吗?
String[] matches = {"rotate","rotate clockwise"};
两行代码上的'匹配'都是灰色的,并且表示从不使用它们。
然后回到onActivityResult。我应该如何为行动制作代码。像这样的东西?
if ("closer".equalsIgnoreCase(command.getText().toString())) {
PUT CODE HERE
}
但该代码适用于editText,如何修改它以使用google语音。
答案 0 :(得分:0)
您可以遍历已接收的数组并检查是否存在匹配值。
例如:
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if(isStringMatch("closer", matches)){
// String match => execute your code
}
}
这是isStringMatch()
方法:
private boolean isStringMatch(String str, ArrayList<String> list){
for(int i=0; i<list.size(); i++){
if(str.equalsIgnoreCase(list.get(i))){
return true;
}
}
return false;
}