RT 我想要在收到短信的时候实现自动朗读出来,我已经写了一个监听短信的类了,剩下的怎么做?
1 //短信监听类 2 3 import java.util.Locale; 4 5 import android.content.BroadcastReceiver; 6 import android.content.Context; 7 import android.content.Intent; 8 import android.speech.tts.TextToSpeech; 9 import android.telephony.SmsMessage; 10 import android.util.Log; 11 import android.widget.Toast; 12 13 public class SmsReceiver extends BroadcastReceiver { 14 public String body; 15 public String sender; 16 private TextToSpeech mSpeech; 17 18 @Override 19 public void onReceive(Context context, Intent intent) { 20 // TODO Auto-generated method stub 21 Toast.makeText(context, "短信到来", 1).show(); 22 23 Object[] pdus=(Object[]) intent.getExtras().get("pdus"); 24 for(Object pdu:pdus){ 25 SmsMessage smsMessage=SmsMessage.createFromPdu((byte[])pdu); 26 body=smsMessage.getMessageBody(); 27 sender=smsMessage.getOriginatingAddress(); 28 System.out.println("body:"+body); 29 System.out.println("sender:"+sender); 30 } 31 32 } 33 34 }
andriod tts
这个我知道,我也实现了在EditText里输入并读出来的功能,但是我不知道怎么将这两个功能整合到一起
自己已经解决了,用观察者模式,让Activity注册个观察者,当监听类发生变化时就可以通知Activity做出反应