import java.util.Locale;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.telephony.gsm.SmsMessage;
import android.util.Log;
import android.widget.Toast;

public class SmsReceiver extends BroadcastReceiver implements
  TextToSpeech.OnInitListener {
 public static final String TAG = "SmsReceiver";

 private TextToSpeech mTts;

 public void onReceive(Context context, Intent intent) {
  Bundle bundle = intent.getExtras();
  SmsMessage[] msgs = null;
  String str = "";
  if (bundle != null) {
   Object[] pdus = (Object[]) bundle.get("pdus");
   msgs = new SmsMessage[pdus.length];
   for (int i = 0; i < msgs.length; i++) {
    msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
    str += msgs[i].getOriginatingAddress();
    str += " :";
    str += msgs[i].getMessageBody().toString();
    str += "\n";
   }

   Toast.makeText(context, str, 10000 * str.length()).show();  // 받은메세지 토스트 출력
 

mTts.speak("start",TextToSpeech.QUEUE_FLUSH, null); // 받음 메세지 tts로 출력 (안됨)

  }
 }

 public void onInit(int status) {
  // TODO Auto-generated method stub
  if (status == TextToSpeech.SUCCESS) {
   int result = mTts.setLanguage(Locale.US);
   if (result == TextToSpeech.LANG_MISSING_DATA
     || result == TextToSpeech.LANG_NOT_SUPPORTED) {
    Log.e(TAG, "Language is not available.");
   } else {
//    mBtnStart.setEnabled(true);
    mTts.speak("start",
      TextToSpeech.QUEUE_FLUSH, null);
//    mBtnStart.setEnabled(false);

   }
  } else {
   Log.e(TAG, "Could not initialize TextToSpeech.");
  }

 }
}

 

온클릭리스너 없이 그냥 바로 재생되게끔하는방법은 없나요??

onInit()오버라이드하고

TextToSpeech 객체 mtts만들고

 mTts.speak("start",TextToSpeech.QUEUE_FLUSH, null);써주면 될것 같은데 안되네요