重启后广播接收器无法工作

4

我有一个在清单文件中注册的广播接收器,用于拦截电话,就像这样:

    <receiver android:name="CallTracker">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

一切都运行得很好,接收器被调用了。 但是当我重新启动设备或AVD后,接收器不再被调用。

为了使广播接收器在重启后继续工作,我需要做什么? 我需要使用PackageManager吗? 我喜欢在清单中注册,因为应用程序不必处于活动状态即可拦截呼叫。


看起来问题不是出在接收器上,而是其他地方。 - Cristian Gruita
你解决了这个问题吗?如果是的话,请告诉我。我正在寻找答案。@Cristian gruita - Barun
1
我想补充一下,在安卓8.0奥利奥(及更高版本)中对Intents所做的更改中,PHONE_STATE intent仍然可以在清单文件中隐式注册,但是这些Intent可能会有相当大的延迟,尤其是在重新启动后不久,当系统仍在忙于传递许多其他Intent时。 - joe1806772
2个回答

0

我知道这个问题很老了,但在我看来仍然相关。由于目前接受的答案是错误的,而user1806772的评论对我来说是正确的答案,我将其作为新的回答提供:

它可能有效。但是,在重启后直接传递意图可能需要很长时间(多达几分钟),直到意图被传递。重启几分钟后,它应该再次快速工作。


-1

您需要将此操作添加到您的意图过滤器中。

<action android:name="android.intent.action.BOOT_COMPLETED" />


我的看法是,这个回答不正确,提到的事件始终在启动后触发,与手机状态无关。 - joe1806772

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接