4

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

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

似乎abortBroadcast()不再工作了。在环聊更新之前,一切都运行良好。

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

4

2 回答 2

7

Hangouts 使用最大可能的优先级(根据Intent-Filter 文档999 ),因此您不能在 <4.4 版本中中止它。在 4.4+ 上,只有默认的 SMS 应用程序包含详细信息的博客文章)可以接收 SMS 通知 - 用户需要将您的应用程序设置为默认 SMS 应用程序才能使您的应用程序正常运行(尽管如果发生这种情况,它应该会按预期运行)。

于 2013-11-17T06:33:04.880 回答
0

注册接收器时,将过滤器的优先级设置为 INTEGER.MAX_VALUE。现在 abortBroadcast() 将起作用;

    receiver = new HightPrioritySmsReceiver();
    IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
    filter.setPriority(Integer.MAX_VALUE);
    registerReceiver(receiver, filter);
于 2014-05-19T06:50:41.397 回答