最近在学习广播,下面记录下通过广播拦截短信,并让系统短信应用没有新短信提示。
Setp1- 创建 SmsReceiver.java 继承 BroadcastReceiver 代码如下:
Setp2
- 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(); } }}
- 添加权限,这个作为一名开发者是不会忘记的,如果不添加大家都知道是什么应的结果:
这里有人会问道:为什么会把意图过滤器里面的 android:priority="2147483647" 设置为 "2147483647"
答案是:谷歌文档里说的优先级最大为 1000,但是我们可以使用大于 1000 的数字,这里用 2147483647 是在 java 中最大的自然数。
不能使用高于 2147483647,高于则为负数,优先级最低。如果优先级没有系统短信应用的优先级高,就会实现拦截失败的。
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: