公司要做一个【因为是机密所以不能说】的项目,有个需求是拦截手机系统的短信,而且不能在手机的短信应用上显示。
OK,一开始以为不难,网上查了一下资料也发现有人做过,于是就开始写demo,结果才发现,这尼玛就是个大坑啊!!
首先网上查到的最多的实现方案是利用自定义的 BroadcastReceiver 去拦截"android.provider.Telephony.SMS_RECEIVED" 的广播,看起来也不难,于是试了下。发现好坑爹啊!在我的酷派大神上无论怎么样就是拦截不到~
好吧,一定是我写代码的姿势不对,所以又到网上查资料。
嚯嚯嚯,我果然机智~~ 一下子就找到了!原来是我的优先级不够。
安卓的广播是有优先级的,并且动态注册的广播优先级更高。于是参考网上说的,优先级设到2147483647,又弄个动态注册,然后兴奋的用我的酷派再试一次——但还是不行!
详见:
http://www.apkbus.com/forum.php?mod=viewthread&tid=53053