【Android】短信应用——短信截获

本文介绍了如何在 Android 中创建一个 Service,动态注册BroadcastReceiver来截获短信。在Service内创建BroadcastReceiver子类,并实现短信截获功能。同时,文章提到了Service和Activity在Manifest.xml的声明,以及必要的权限设置。为了开机自启动,还涉及了一个静态注册的BroadcastReceiver。文章结尾邀请了解详情的读者留言交流。
摘要由CSDN通过智能技术生成
之前写过一篇关于短信截获的文章,通过注册 BroadcastReceive 来获取短信信息。
但是我发现,当装了飞信,360手机安全卫士等同样有截获短信功能的程序后,我自己的程序就截获不到短信了;而且我还发现,当安装了飞信以后,Android 系统 的Notification 中就不会再有短信提示了。


在 BroadcastReveive 中,有 abortBroadcast() 方法。该方法的作用是将短信拦截,并且阻止其继续传递。
我们都知道,Android 广播,是组件之前传播数据的一种机制。(详情可参考:《Android系统中的广播(Broadcast)机制简要介绍和学习计划》)
而短信就是一种广播,当有短信到来时,系统会发出广播,随后各接收器就会按照优先级一次接受,一级接收完,传给下一级;而当优先级高的接收器调用了 abortBroadcast() 方法后,广播就被阻拦了,那么优先级低于该级的接收器,则不会再收到信息。
(当我第一次了解该方法时,忍不住对移动做出微微的鄙视 0.0)


截获问题解决了,剩下的就是优先级的问题了。根据 Google 官方发布的文档,在 Manifest.xml 中修改 android:priority 参数可更改优先级,参数为-1000~1000,数值越高,优先级越高。但是当我把优先级设置到1000后,还是无法先于飞信、360,好奇怪……究竟是为什么呢?
于是我开始针对剩下问题着手研究。


开始的时候,我还怀疑过是否和程序安装的先后顺序有关,现在
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值