如何将用户输入的语音命令与硬编码字符串进行比较
How to compare voice command input by user to hard coded strings
我目前正在开发一款通过语音命令接受用户输入的应用程序。该程序使用 google api 识别单词。我希望能够将用户语音输入与硬编码字符串进行比较。我的问题是我不知道如何编写此函数的代码。我正在使用 if else 语句来匹配硬编码字符串,但 Toast 总是错误的。谁能指导我吗?感谢您的宝贵时间!
/**
* Receiving speech input
* */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_CODE_SPEECH_INPUT: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
txtSpeechInput.setText(result.get(0));
if(txtSpeechInput.equals("weather")) {
Toast.makeText(getApplicationContext(), "Good", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "It's a difficult question... I'm sorry", Toast.LENGTH_SHORT).show();
}
}
break;
}
}
}
您正在将 String 与 TextView 对象进行比较,而不是直接与数据进行比较。
尝试if( result.get(0).equals("weather") ) { ... }
或至少 if( txtSpeechInput.getText().toString().equals("weather") ) { ... }
我目前正在开发一款通过语音命令接受用户输入的应用程序。该程序使用 google api 识别单词。我希望能够将用户语音输入与硬编码字符串进行比较。我的问题是我不知道如何编写此函数的代码。我正在使用 if else 语句来匹配硬编码字符串,但 Toast 总是错误的。谁能指导我吗?感谢您的宝贵时间!
/**
* Receiving speech input
* */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_CODE_SPEECH_INPUT: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
txtSpeechInput.setText(result.get(0));
if(txtSpeechInput.equals("weather")) {
Toast.makeText(getApplicationContext(), "Good", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "It's a difficult question... I'm sorry", Toast.LENGTH_SHORT).show();
}
}
break;
}
}
}
您正在将 String 与 TextView 对象进行比较,而不是直接与数据进行比较。
尝试if( result.get(0).equals("weather") ) { ... }
或至少 if( txtSpeechInput.getText().toString().equals("weather") ) { ... }