我自己开发了一个短信拦截器Android应用程序,它可以很好地捕获所有垃圾邮件,直到最近谷歌更新了它的环聊应用程序才能使用短信。
问题:我的应用和环聊都收录了短信!即使该消息被我的应用程序阻止并存储在其私人数据库中,它也会出现在环聊应用程序中,因此同时存在于库存消息应用程序中。
似乎abortBroadcast()
不再有效了。在环聊更新之前,一切都运转良好。
我也试过摆弄android:priority
,但徒劳无功。
答案 0 :(得分:7)
环聊使用最大可能的优先级(每the Intent-Filter docs 999),因此您无法在< 4.4版本上中止它。在4.4及以上,只有default SMS app(blog post with details)可以接收短信通知 - 用户需要将您的应用设置为默认的短信应用,以使您的应用正常运行(尽管它应该按预期运行,如果有的话发生)。
答案 1 :(得分:0)
注册接收器时,将filter的优先级设置为INTEGER.MAX_VALUE。 现在abortBroadcast()将起作用;
receiver = new HightPrioritySmsReceiver();
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
filter.setPriority(Integer.MAX_VALUE);
registerReceiver(receiver, filter);