我正在制作一个仪表盘应用程序,其中有许多界面。当用户基于语音命令时,我需要打开该活动。我不知道从哪里开始,我已经完成了所有屏幕,我想实现语音搜索。 我的应用程序屏幕是“提前”,“请假”,“招聘”,“权限”,“通知”等 例如:当用户说“提前”时,它应该打开提前屏幕。请帮助我。
我正在制作一个仪表盘应用程序,其中有许多界面。当用户基于语音命令时,我需要打开该活动。我不知道从哪里开始,我已经完成了所有屏幕,我想实现语音搜索。 我的应用程序屏幕是“提前”,“请假”,“招聘”,“权限”,“通知”等 例如:当用户说“提前”时,它应该打开提前屏幕。请帮助我。
1) 开始语音识别意图
2) 在onActivityResult()中处理返回的数据以决定要启动哪个活动
1. 开始语音识别意图
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Choose Activity");
startActivityForResult(intent, REQUEST_SPEECH);
2. 处理返回的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == REQUEST_SPEECH){
if (resultCode == RESULT_OK){
ArrayList<String> matches = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (matches.size() == 0) {
// didn't hear anything
} else {
String mostLikelyThingHeard = matches.get(0);
// toUpperCase() used to make string comparison equal
if(mostLikelyThingHeard.toUpperCase().equals("ADVANCES")){
startActivity(new Intent(this, Advances.class));
} else if() {
}
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}