0
내 소프트웨어 아키텍처는 다음과 같습니다.
TabActivity는 TabHost 활동입니다.
두 개의 ActivityGroup : AGroup 및 BGroup이 있습니다.
AGroup에는 2 개의 활동이 있습니다. A1Activity 및 A2Activity.Android에서 인식기를 구현하는 방법
인식기를 A1Activity에 구현하려고합니다. 아래
내 코드 :
private static final int VOICE_RECOGNIZER_REQUEST_CODE = 0x1008;
public void Recognizera() {
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if(activities.size() != 0) {
try {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "語音辨識");
startActivityForResult(intent, VOICE_RECOGNIZER_REQUEST_CODE);
}
catch(Exception e) {
e.printStackTrace();
}
}
}
@Override
protected void onActivityResult(int RequestCode, int ResultCode, Intent data) {
switch(RequestCode) {
case VOICE_RECOGNIZER_REQUEST_CODE:
if(RequestCode == VOICE_RECOGNIZER_REQUEST_CODE && ResultCode == RESULT_OK) {
ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
for(int i = 0; i < results.size(); i++) {
System.out.println("results " + results.get(i));
}
}
break;
}
super.onActivityResult(RequestCode, ResultCode, data);
}
하지만 URL 아래 그림과 같이 "알 수없는 문제"를 보여줍니다.
하지만 logcat에는 오류 메시지가 없습니다.
어떻게 수정하나요?
onActivityResult에는 실행되지 않습니다. 그래서 ResultCode를 얻을 수 없습니다. – brian
'if' 절은 조건이 결코 참이 아니기 때문에 실행되지 않습니다 만,'onActivityResult'는 절대 호출되지 않았습니까? 메서드의 시작 부분에 이것을 추가해보십시오 :'Log.d ("Recognition", "Result code ="+ ResultCode); ' – Jong
전환 전의 onActivityResult의 첫 번째 줄에 ResultCode를 가져 오려고합니다. 그러나 어떤 로그도 보여주지 않습니다. 그래서 나는 결코 부름받지 않을 것이라고 생각합니다. – brian