发送与接收短信
权限:
<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"));
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。