대다수의 화면이있는 대시 보드 애플리케이션을 만들고 있습니다. 사용자가 음성 명령에 따라 활동을 열어야한다고 말하면 어디서부터 시작해야할지 모르겠다. 이미 모든 화면을 완성했으며 음성 검색을 구현하고 싶다. 내 앱 화면은 진도, 나뭇잎, 모집, 권한, 알림 등입니다. 예 : 사용자가 '고급'이라고 말하면 고급 화면이 열립니다. 도와주세요.음성 명령을 기반으로 활동을 여는 방법
3
A
답변
3
1)
1.에게 의도 음성 인식을 시작하는 활동을 결정하는) (onActivityResult를에서 반환 된 데이터를 처리) 음성 인식 의도
2를 시작
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);
}
+0
정보 공유를위한 감사합니다. @jfortunato. 나는 "ADVANCES"대신에 나의 Contact List에 의도를 전달하고 싶었다. 나는 시도했지만 연락처를 다시 Intent를 전달할 때 startActivity() 대신 startActivityForResult() 메서드를 사용해야한다. 너 나 좀 도와 줄래? – Tara
이 http://developer.android.com/guide/topics/search/search-dialog.html이 도움이 될 것이라고 생각합니다 – Sree
음성 명령에 따라 활동을 시작하고 싶습니다 ... 이미 검색을 구현했습니다. . 귀하의 회신에 대한 감사합니다 – Pragnani
내가 Google에 질문을하면이 http://stackoverflow.com/a/10330292/1697047이 표시됩니다. 이 – Sree