首页 > 解决方案 > 我的应用在 API 级别 30 上未收到 RECEIVE_BOOT_COMPLETED,但在 API 级别 21 上收到

问题描述

我已经通过输入manifest并实现 RECEIVE_BOOT_COMPLETED 来实现MyBootReceiver.onReceive(..)

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
....
<receiver
            android:name=".MyBootReceiver"
            android:enabled="true"
            android:exported="false" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
            </intent-filter>
        </receiver>

在模拟器(Pixel 2 API 21)上运行时效果很好。但是,当它在 API 级别 30 或物理设备 OnePlus 6 (Oxygen 10.3.7) 上运行时,不会收到 BOOT 通知。

但是,当手机重新启动时,Whatsapp、Sms 等其他应用程序能够从服务器接收消息,可能使用一些通知事件。这怎么可能?

我错过了什么吗?

标签: android

解决方案


一加和小米已经在 Android 之上定制了他们的操作系统。所以他们已经覆盖了这个功能。请参阅Android 设备重启后广播接收器不工作

在较新的 Android 版本上,您需要运行 adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p com.mypackage.name。在不限制广播到您的应用程序的情况下,您的设备实际上会重新启动

regd你的问题,

但是,当手机重新启动时,Whatsapp、Sms 等其他应用程序能够从服务器接收消息,可能使用一些通知事件。这怎么可能?

也可以通过访问电话网络状态


推荐阅读