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());
}
第一步:
添加权限:
<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());
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories