我有一个应用程序,它是一个BroadcastReceiver,它处理NEW_OUTGOING_CALL意图。我的手机上也有其他应用程序被注册为这些意图的接收者,但是我的应用程序是用一个更高优先级的意图过滤器注册的,所以我的BroadcastReceiver可以首先看到意图。
我希望能够以编程的方式阻止任何其他注册的BroadcastReceiver为NEW_OUTGOING_CALL处理这些意图,但我想让电话继续进行。这个是可能的吗?
发布于 2017-06-19 05:43:42
我不认为你真的能做你想做的事。此操作的文档非常清楚地描述了系统希望如何处理该广播:
为了保持一致性,任何旨在禁止电话通话的接收器都应该有0的优先级,以确保它将看到要拨打的最终电话号码。任何目的是重写被呼叫的电话号码的接收器都应该有一个积极的优先考虑。该广播系统保留了负优先级;使用这些优先级可能会造成问题。
如果你想先看到号码,你可以这样做(有更高的优先级),但是你必须和其他接收者一起生活,然后你才能看到它。或者,您可以在最后看到数字(通过降低您的优先级到0),但是您必须先与其他接收者一起查看该数字。
请注意,另一个人建议中止广播。这不仅没有意义,因为系统需要广播的结果,而且在文档中也明确说明了不中止此广播。
任何接收此意图的BroadcastReceiver都不能中止广播。
https://stackoverflow.com/questions/44622518
复制相似问题