短信在我的短信应用和环聊中收到,虽然我打电话给abortBroadcast()

时间:2013-11-17 05:44:03

标签: android sms broadcastreceiver hangout

我自己开发了一个短信拦截器Android应用程序,它可以很好地捕获所有垃圾邮件,直到最近谷歌更新了它的环聊应用程序才能使用短信。

问题:我的应用和环聊都收录了短信!即使该消息被我的应用程序阻止并存储在其私人数据库中,它也会出现在环聊应用程序中,因此同时存在于库存消息应用程序中。

似乎abortBroadcast()不再有效了。在环聊更新之前,一切都运转良好。

我也试过摆弄android:priority,但徒劳无功。

2 个答案:

答案 0 :(得分:7)

环聊使用最大可能的优先级(每the Intent-Filter docs 999),因此您无法在< 4.4版本上中止它。在4.4及以上,只有default SMS appblog 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);