2013-11-29 2 views
0

어떤 이유로 나는 onutteranceCompleted에서 PhoneCallListener를 포함하는 메소드를 호출 할 수 없습니다. 오류 메시지가 없으며 스크립트 실행을 중지하는 것 같습니다. 일부 로그를 추가했으며 PhoneCallListener를 사용하여 setUpPhone의 "여기"로그인에 도달합니다. PhoneCallListener가 없으면 최종 로그 "전화 설정"에 도달합니다. 다음은 구현 된 코드 예입니다. PhoneCallListener가 실행을 중지하는 이유onUtteranceCompleted는 PhoneCallListener를 허용하지 않습니다

@Override 
public void onInit(int status) 
{ 
    if(status == TextToSpeech.SUCCESS) 
    { 
     tts.setOnUtteranceCompletedListener(this); 
     int result = tts.setLanguage(Locale.US); 

     if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) 
     { 
      //Language not supported 
     } 
     else 
     { 
      speakOut(); 
     } 
    } 

} 

private void speakOut() 
{ 
    HashMap<String, String> myHashAlarm = new HashMap<String, String>(); 
    myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM)); 
    myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "Text to Speech"); 
    tts.speak("blah blah", TextToSpeech.QUEUE_FLUSH, myHashAlarm); 
} 

@Override 
public void onDestroy() 
{ 
    if(tts != null) 
    { 
     tts.stop(); 
     tts.shutdown(); 
    } 

    super.onDestroy(); 
} 

public void onUtteranceCompleted(String utteranceId) 
{ 
    Log.i("TEST", utteranceId); 
    setUpPhone(); 
    Log.i("TEST", "phone set up"); //this is never reached 
} 

private void setUpPhone() 
{ 
    Log.i("TEST", "here"); 

    PhoneCallListener phoneListener = new PhoneCallListener(); //If I remove this line, the log "phone set up" displays. 
} 

답변

0

그러나 나는 내가 넣어이 문제를 해결 몰라 "phoneListener = 새로운 PhoneCallListener을();" onCreate 메소드에서.

관련 문제