2011-12-21 1 views
1

이 애플리케이션에서받은 메시지를 수신하고 큰 소리로 읽도록했습니다. 45 : 29.949 : E/ActivityThread (566) : 활동 mo.rach.collaboration.speaker가 누출 된 ServiceConnection android.speech.tts 내가Android 앱, SMS/문자 메시지 (누설 된 serviceConnection)

12-21 (15)를 종료 할 때 문제는 나는 다음과 같은 오류가 발생한다 원래 여기

바인드 나는 기본적으로 메시지가 여전히 큰 소리로 읽도록 응용 프로그램이 닫혀있는 경우 있도록 백그라운드에서 실행하고 싶은 41397858 @ .TextToSpeech $ 연결. 저는 이것이 9 일에 uni로 돌아 가기 전에 이것을 알아야합니다. 이것이 프로젝트의 날짜입니다.

smsReceiver.java

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

public class smsreceiver extends BroadcastReceiver { 


    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
       int n; 
       Bundle bundle = intent.getExtras(); 
       Object messages[] = (Object[]) bundle.get("pdus"); 
       SmsMessage smsMessage[] = new SmsMessage[messages.length]; 
       for (n = 0; n<messages.length; n++) 
       { 
       smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]); 
       } 
       // show first message 
       String sms1 = smsMessage[0].getMessageBody(); 
       String from = smsMessage[0].getOriginatingAddress(); 
       Toast toast = Toast.makeText(context,"SMS Received from "+from+":" + sms1, Toast.LENGTH_LONG); 
       toast.show(); 
       speaker.speakSMS(sms1);    
      } 

    } 

speaker.java 추가 스피커 클래스 시도에서

import android.speech.tts.*; 
import android.app.Activity; 
import android.os.Bundle; 

public class speaker extends Activity { 
    /** Called when the activity is first created. */ 
    private static TextToSpeech myTts; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     myTts = new TextToSpeech(this, ttsInitListener); 

    } 
    private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() { 
     public void onInit(int version) { 
      //myTts.speak(""+o, 0, null); 
     } 
     }; 

    public static void speakSMS(String sms) 
    { 
     myTts.speak(sms, 0, null); 
     myTts.synthesizeToFile(sms,null, "/sdcard/myappsounds/mysms.wav"); 
    } 
} 

답변

1

: 스택 오버플로 (SO)에

void onDestroy() { 
    if(dTTS != null) { 
     dTTS.stop(); 
     dTTS.shutdown(); 
    } 
    super.onDestroy(); 
} 
+0

에 오신 것을 환영합니다. 제발, 당신이 대답 할 때 조금 더 자세히 설명해주세요. 당신이하고있는 일을 설명하려고 노력하십시오. –