目前在做短信拦截并删除,遇到了各种坑,但同时说明了安卓系统越来越安全了,很赞!
拦截短信:
目前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的系统&