我有一个自己开发的短信拦截器 Android 应用程序,它可以很好地捕获所有垃圾邮件,直到最近谷歌更新了它的环聊应用程序以使用短信。
问题:我的应用程序和环聊都捕获了短信!即使该消息被我的应用程序阻止并存储在其私有数据库中,它也存在于环聊应用程序中,因此同时存在于股票消息应用程序中。
似乎abortBroadcast()
不再工作了。在环聊更新之前,一切都运行良好。
我也试过摆弄,android:priority
但徒劳无功。
我有一个自己开发的短信拦截器 Android 应用程序,它可以很好地捕获所有垃圾邮件,直到最近谷歌更新了它的环聊应用程序以使用短信。
问题:我的应用程序和环聊都捕获了短信!即使该消息被我的应用程序阻止并存储在其私有数据库中,它也存在于环聊应用程序中,因此同时存在于股票消息应用程序中。
似乎abortBroadcast()
不再工作了。在环聊更新之前,一切都运行良好。
我也试过摆弄,android:priority
但徒劳无功。
Hangouts 使用最大可能的优先级(根据Intent-Filter 文档999 ),因此您不能在 <4.4 版本中中止它。在 4.4+ 上,只有默认的 SMS 应用程序(包含详细信息的博客文章)可以接收 SMS 通知 - 用户需要将您的应用程序设置为默认 SMS 应用程序才能使您的应用程序正常运行(尽管如果发生这种情况,它应该会按预期运行)。
注册接收器时,将过滤器的优先级设置为 INTEGER.MAX_VALUE。现在 abortBroadcast() 将起作用;
receiver = new HightPrioritySmsReceiver();
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
filter.setPriority(Integer.MAX_VALUE);
registerReceiver(receiver, filter);