이 코드는 "말"버튼까지 유선 할 수 있으며 말했다 무엇에 가장 적합한 단일 문자열을 받게됩니다.
는 음성 인식 활동을 시작하려면 :
private static final int VOICE_RECOGNITION_REQUEST_CODE = 1;
private void startVoiceRecognitionActivity() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Speak Now");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}
는 결과를 받으려면 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (matches != null && matches.size() > 0) {
String spokenText = matches.get(0);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
당신이 나를 도와 드릴까요 .. 내 코드에 문제가 있습니다 무엇. 장치에서 실행할 때 충돌이 발생합니다. 나는 보호 무효 onActivityResult를 (INT requestCode가, INT의 resultCode, 의도 데이터) { \t \t 경우 (requestCode가 == request_code &&의 resultCode == RESULT_OK) \t \t { \t \t \t ... 문제는이 코드에 생각 ArrayList는 = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS)와 일치합니다. \t \t \t 문자열 옵션 = null; \t \t \t 경우 (일치 = NULL && matches.size()> 0!) \t \t \t \t { \t \t \t = matches.get 옵션 (0); \t \t \t} \t \t \t et.setText (option); \t \t \t \t} \t \t super.onActivityResult (requestCode가,의 resultCode 데이터); \t} –
Shah
크래시가 발생하면 LogCat을보고 예외가 무엇인지 확인하고 충돌 원인을 식별해야합니다. –
선생님, 전화로 실행 중입니다. LogCat을 보는 방법을 모르겠습니다. – Shah