Android 10 BOOT_COMPLETED 应用程序未收到广播
Android 10 BOOT_COMPLETED Broadcast not received to application
我必须 运行 使用 BOOT_COMPLETED 广播的服务,但是当 Android 10 设备正在启动时,我收到以下警告。
system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.LOCKED_BOOT_COMPLETED flg=0x400010 } to com.rahul.http/.BootReceiver
主要清单:
<service
android:name=".HttpUpdateService"
android:enabled="true"
android:directBootAware="true"
android:exported="true">
</service>
<receiver android:name=".BootReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
android:exported="true"
>
<intent-filter android:priority="999">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
</receiver>
我还添加了接收 boot_complete 广播的权限。
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
我的申请中没有任何 activity。
尝试将 android:directBootAware
添加到您的 <receiver
,如 DOCs
当您收到广播接收器的意图时,您必须添加检查您的应用程序目标是否低于 Android O 版本。是这样的:
如果应用构建版本大于 android O,则必须使用提供的意图调用 startForegroundService 方法。否则你只是调用方法 startService 提供的意图。
尝试在清单中的应用程序标记中添加以下属性:
android:directBootAware="true"
我必须 运行 使用 BOOT_COMPLETED 广播的服务,但是当 Android 10 设备正在启动时,我收到以下警告。
system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.LOCKED_BOOT_COMPLETED flg=0x400010 } to com.rahul.http/.BootReceiver
主要清单:
<service
android:name=".HttpUpdateService"
android:enabled="true"
android:directBootAware="true"
android:exported="true">
</service>
<receiver android:name=".BootReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
android:exported="true"
>
<intent-filter android:priority="999">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
</receiver>
我还添加了接收 boot_complete 广播的权限。
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
我的申请中没有任何 activity。
尝试将 android:directBootAware
添加到您的 <receiver
,如 DOCs
当您收到广播接收器的意图时,您必须添加检查您的应用程序目标是否低于 Android O 版本。是这样的: 如果应用构建版本大于 android O,则必须使用提供的意图调用 startForegroundService 方法。否则你只是调用方法 startService 提供的意图。
尝试在清单中的应用程序标记中添加以下属性:
android:directBootAware="true"