android 短信拦截并删除

在Android开发中,实现短信的拦截和删除功能面临诸多挑战。4.4及以上版本系统只能设置一个默认的SMS应用,非默认应用无法直接拦截短信,但可以删除短信,前提是获取到动态发送短信的权限。自3.1版起,新安装或被停止的APP无法接收广播,除非使用FLAG_INCLUDE_STOPPED_PACKAGES。测试显示不同设备的兼容性问题,如锤子4.4系统能接收,而酷派4.1系统则不能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前在做短信拦截并删除,遇到了各种坑,但同时说明了安卓系统越来越安全了,很赞!
拦截短信:
目前4.4版本以上的系统是不可能拦截到了,原因:
4.4及其以后系统,只能设置一个默认的SMS短信app,但短信到达,首先会通知这个app,并且只有这个app有对短信数据库的修改权限和短信的发送权限,并且短信广播不再是有序广播,也就是App没有办法拦截这个广播,所有app都快接收到短信到达的广播通知,但是只有默认SMS短信app可以修改短信记录(但是!不排除有些操作系统修改这个机制!)解决方法:需要用户授权应用为default sms(你觉得用户会这么做吗?)

删除短信:
短信删除是可以随便删的,但是需要用户动态给予发短信权限

监听短信:
如果是静态注册来监听系统广播,按理来说程序关闭时也可以接收到广播。但是不行,原因:
自Android 3.1之后, 所有新安装但未被执行过的apk, 以及那些被用户强行停止的apk, 都会处于stopped状态.这个状态下, apk中的广播接收器, 均处于未激活状态, 无法履行监听功能。但是自己写的广播,允许应用和后台服务通过给广播intent设置FLAG_INCLUDE_STOPPED_PACKAGES来唤醒处于“stopped state”的程序,但是系统自带的广播intent,由于不能修改,就只能接受这个现实了。

测试:
注册静态接收系统短信的广播:锤子手机4.4的系统&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值