2012-11-30 2 views
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 아래 그림과 같이 "알 수없는 문제"를 보여줍니다.
enter image description here
하지만 logcat에는 오류 메시지가 없습니다.
어떻게 수정하나요?

답변

1

음성 인식 중에 오류가 발생했기 때문에 이러한 현상이 발생합니다. ResultCode 매개 변수는 오류 코드 here 중 하나입니다. 먼저 오류가 무엇인지 찾아서 더 자세히 조사 할 수 있습니다.

+0

onActivityResult에는 실행되지 않습니다. 그래서 ResultCode를 얻을 수 없습니다. – brian

+0

'if' 절은 조건이 결코 참이 아니기 때문에 실행되지 않습니다 만,'onActivityResult'는 절대 호출되지 않았습니까? 메서드의 시작 부분에 이것을 추가해보십시오 :'Log.d ("Recognition", "Result code ="+ ResultCode); ' – Jong

+0

전환 전의 onActivityResult의 첫 번째 줄에 ResultCode를 가져 오려고합니다. 그러나 어떤 로그도 보여주지 않습니다. 그래서 나는 결코 부름받지 않을 것이라고 생각합니다. – brian