Android BroadcastReceiver之短信拦截(黑名单)
来源:互联网 发布:php 获取useragent 编辑:程序博客网 时间:2024/05/14 23:52
短信拦截器
系统收到短信时会产生一条广播,广播中包含了短信的号码和内容
定义广播接收者接收短信广播
public void onReceive(Context context, Intent intent) {//拿到广播里携带的短信内容Bundle bundle = intent.getExtras();Object[] objects = (Object[]) bundle.get("pdus");for(Object ob : objects ){ //通过object对象创建一个短信对象 SmsMessage sms = SmsMessage.createFromPdu((byte[])ob); System.out.println(sms.getMessageBody()); System.out.println(sms.getOriginatingAddress());}
}
- 系统创建广播时,把短信存放到一个数组,然后把数据以pdus为key存入bundle,再把bundle存入intent
清单文件中配置广播接收者接收的广播类型,注意要设置优先级属性,要保证优先级高于短信应用,才可以实现拦截
<receiver android:name="com.itheima.smslistener.SmsReceiver"> <intent-filter android:priority="1000"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter></receiver>
添加权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
4.0之后,广播接收者所在的应用必须启动过一次,才能生效
- 4.0之后,如果广播接收者所在应用被用户手动关闭了,那么再也不会启动了,直到用户再次手动启动该应用
短信拦截器
* 设置广播接收者的优先级,大于系统短信应用,先一步收到短信广播,然后拦截广播,短信应用收不到广播,用户就看不到短信了
* 4.0之后,进程需要启动过一次,广播接收者才能生效
* 4.0之后,用户手动停止进程,那么广播接收者再也不会启动了,直到用户下一次手动启动进程
<receiver android:name="com.cy.smslanjie.SmsReceiver"> <intent-filter android:priority="1000"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver>
public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //取出短信内容 Bundle bundle = intent.getExtras(); //数组中的每一个元素,就是一条短信 Object[] objects = (Object[]) bundle.get("pdus"); for (Object object : objects) { //把数组中的元素转换成短信对象 SmsMessage sms = SmsMessage.createFromPdu((byte[]) object); //获取对方号码 String address = sms.getOriginatingAddress(); //获取短信内容 String body = sms.getMessageBody(); System.out.println(address + ";" + body); if("13888".equals(address)){ //拦截短信 abortBroadcast(); } } }}
参考:Android BroadcastReceiver
阅读全文
0 0
- Android BroadcastReceiver之短信拦截(黑名单)
- android 黑名单 短信拦截
- 黑名单拦截短信【Android】
- Android开发之短信拦截--BroadcastReceiver学习
- Android基础之BroadCastReceiver短信拦截器
- Android-拦截短信(BroadcastReceiver)
- Android--短信窃听器及黑名单拦截
- 黑名单短信拦截
- 5.5 短信黑名单拦截
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- Android——BroadcastReceiver 广播 短信拦截
- 黑名单电话短信拦截实现
- 黑名单电话和短信拦截
- 类似于黑名单的短信拦截
- 通过BroadcastReceiver拦截短信
- 通过BroadcastReceiver拦截短信
- BroadcastReceiver实现短信拦截
- iOS Hacker 反注入和反反注入
- matlab函数表
- 禁止 EditText 自动获取焦点 弹出软键盘
- Networking
- WUST OJ 1498: Wavio序列
- Android BroadcastReceiver之短信拦截(黑名单)
- mybatis 中使用association返回一条数据
- 神经网络入门
- 判断素数
- Collections和Collection的区别
- windows环境安装VMware,并且安装CentOS7 虚拟机
- BZOJ3884 上帝与集合的正确用法 (欧拉定理)
- MongoDB 常用基本命令
- NDK的基础教程 一 最简单的NDK使用