Android终止广播实现短信拦截
2017-02-02 14:46
405 查看
Android终止广播实现短信拦截
最近在学习广播,下面记录下通过广播拦截短信,并让系统短信应用没有新短信提示。Setp1
-创建SmsReceiver.java继承BroadcastReceiver代码如下:
public class SmsReceiver extends BroadcastReceiver { private static final String tag = "SmsReceiver"; public void onReceive(Context context, Intent intent) { Object[] objects = (Object[]) intent.getExtras().get("pdus"); //循环遍历短信过程 for (Object object : objects) { // 获取短信对象 SmsMessage sms = SmsMessage.createFromPdu((byte[]) object); // 获取导向对象的基本信息 String originatingAddress = sms.getOriginatingAddress(); String messageBody = sms.getMessageBody(); Log.i(tag, "号码:" + originatingAddress); Log.i(tag, "内容" + messageBody); //终止广播传输 abortBroadcast(); } } }
Setp2
-添加权限,这个作为一名开发者是不会忘记的,如果不添加大家都知道是什么应的结果:
<uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <receiver android:name=".receiver.SmsReceiver"> <!-- 设置优先级为最大 --> <intent-filter android:priority="2147483647"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver>
这里有人会问道:为什么会把意图过滤器里面的android:priority=”2147483647”设置为”2147483647”
答案是:谷歌文档里说的优先级最大为1000,但是我们可以使用大于1000的数字,这里用2147483647是在java中最大的自然数。
不能使用高于2147483647,高于则为负数,优先级最低。如果优先级没有系统短信应用的优先级高,就会实现拦截失败的。
相关文章推荐
- 在通过android的广播机制拦截短信的实现过程中遇到的问题
- Android 利用广播实现指定号码的短信的拦截 附源码下载链接
- Android之广播接收者获取短信并实现短信拦截
- android 广播接收者--BroadcastReceiver (实现短信窃听)
- android 使用广播接收者监听短信和拦截外拨电话
- android手机短信拦截的实现【精华转载】
- Android -- 怎么发出和接收广播, Broadcast, 电话拨号拦截,短信拦截
- Android利用广播拦截短信
- android广播实现短信窃听器和开机自动启动activity
- android 使用广播 接收和拦截 android系统短信
- android短信拦截的实现代码
- Android开发入门之采用广播接收者实现短信窃听器
- Android -- 怎么发出和接收广播, Broadcast, 电话拨号拦截,短信拦截
- android 使用广播接收者监听短信和拦截外拨电话
- 如何在Android 4.4上实现短信拦截
- android手机短信拦截的实现
- android-BroadcastReceiver 通过终止广播 阻止用户收到短信
- android简单实现短信拦截
- Android广播之九——拦截短信
- Android中短信拦截的实现