开发日记——手机安全卫士 Day07 2016-7-26 电话短信拦截功能

Day07 2016-7-26 电话短信拦截功能

短信拦截:

初始想法:接收短信会收到一个有序广播,自定义一个广播接收器,将优先级调高,判断如果是需要拦截的短信就截断广播。

官方文档说优先级最高是1000。静态注册广播发现系统的短信会先收到广播,无法实现想要的功能。

动态注册的优先级比静态注册高,但是如果软件不能开机自启或者被关掉,那么也无法实现拦截。

百度发现有人说android:priority 属性的最大值不是1000,而是2147483647,即Integer 的最大值。

静态注册让优先级是2147483647,发现无法进入onReceive()函数。我又试了2147483646,这次倒是可以了,但是系统短信先收到的。

尝试了一下动态注册,设置优先级是2147483647,可以进入onReceive函数,但是还是系统短信先收到的。

网上搜到的方法基本都跟我的初始想法一致,经试验该方法已经不可行了。不过我又发现了有人说可以监听短信数据库,采用观察者模式。但是我觉得用这种方式虽然能删掉短信,但用户还是会收到提醒,并不是一个好的方法。

android4.4之后,新增了一个default sms的机制,简而言之,就是如果要在4.4之后实现短信拦截功能,就必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截。但这种做法,适配性和兼容性的工作是非常巨大的,短信、wapush(多种)、彩信、单双卡等等,相当于要求短信拦截类的软件要集成一个功能非常完善的通讯录类应用的功能。

可以利用4.2+后的添加App Ops权限管理功能,在MESSAGE的TAB中找到自己的App,并进入相应的权限管理界面,但是不是所有的手机都支持这个功能。原文在这:http://blog.csdn.net/l173864930/article/details/17112227 

随后我又查到有人说 android4.4以上新增了个android.app.AppOpsManager,通过反射它来显示短信拦截或删除。可参考:http://bbs.gfan.com/android-7501638-1-1.html 


其它链接:

初始想法讲解:http://blog.csdn.net/etzmico/article/details/7317892

参照知乎上这个问题可以了解动态注册优先级高的原因:http://www.zhihu.com/question/37356401

保持APP不被kill可以参照知乎上这个问题:http://www.zhihu.com/question/29826231

监听短信数据库可以参照:

http://www.jb51.net/article/64846.htm

http://blog.csdn.net/junjieking/article/details/6758626

http://www.cnblogs.com/baiqiantao/p/5549261.html


电话拦截

挂断一个电话在API-10和之前版本中直接调用TelephonyManager对象的endCall方法即可,但是之后的版本中这个API不再被公开(升级后的Android系统中还存在, 但是在Android SDK中不再提供给开发者* ),需要使用反射的方法。

可参照:

http://blog.csdn.net/shang1jk/article/details/11389809

http://www.linuxidc.com/Linux/2011-11/46416.htm

http://www.cnblogs.com/keshuangjie/archive/2012/08/31/2665298.html

android studio导入aidl出现问题,解决方案参照:http://blog.csdn.net/liyue199512/article/details/52033046

发现一个现象,手机收到来电(对方未挂断,自己未接听),这种情况下会收到两次广播,都是android.intent.action.PHONE_STATE。

我找到了一个同样的发现者:http://www.eoeandroid.com/thread-914869-1-1.html?_dsign=2e6a6d1c

依旧没找到原因,希望未来能掌握更多的知识和方法去探究真相


除了拦截以外,我在监听中开启了服务,在服务中弹出通知。

通知的使用可参见:http://blog.csdn.net/vipzjyno1/article/details/25248021/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值