您的位置:首页 > 移动开发 > Android开发

Android-拦截短信(BroadcastReceiver)

2015-08-20 10:28 393 查看
从接收短信的广播中拦截接收的短信

第一步:

添加权限:

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

第二步:

创建SmsReceiver广播接收者继承BroadcastReceiver类

第三步:

注册广播

<receiver android:name=".SmsReceiver">

      <intent-filter android:priority="1000">

          <action android:name="android.provider.Telephony.SMS_RECEIVED"/>

      </intent-filter>

</receiver>

priority="1000"是权限,1000为最大;

action标签中是要接收的广播

第四步:

在SmsReceiver类中接收到短信并判断短信号码是否要拦截

//拿到短信的信息
//短信内容封装在intent中
Bundle bundle = intent.getExtras();
//以pdus为键,取出一个object数组,数组中的每一个元素,都是一条短信
Object[] objects = (Object[]) bundle.get("pdus");

//拿到广播中的所有短信
for (Object object : objects) {
//通过pdu来构造短信
 SmsMessage sms = SmsMessage.createFromPdu((byte[])object);
 if(sms.getOriginatingAddress().equals("15555215554")){
   //阻止其他广播接收者收到这条广播
   abortBroadcast();
   SmsManager.getDefault().sendTextMessage(sms.getOriginatingAddress(), null, "拦截后自动回复的内容", null, null);
 }
System.out.println(sms.getMessageBody());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息