如何在Android 11上运行启动广播接收器

3

我正在开发一款闹钟应用程序,可以设置闹钟并将闹钟数据存储到Room数据库中,我想在手机重启后重新调度我的闹钟。所有操作都正常工作,但在Android 11上不起作用。在Android 11中,启动接收器不触发,而在其他设备上,启动接收器会触发并设置数据库中存储的所有闹钟。

谢谢。

我正在使用以下代码:

 override fun onReceive(context: Context?, intent: Intent?) {
    if (Intent.ACTION_BOOT_COMPLETED == intent?.action)
    {
        

    }
}

你有一个空的if语句吗?我在想它在其他设备上是如何工作的... - Ruli
兄弟,我刚刚发布了我的通用逻辑...在我的if语句中,我显示了一个logcat...用于测试。 - Hannan Shahid
2个回答

2
我希望您已经设置了以下权限。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

并且像下面这样为你的接收器添加意图过滤器

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

如果上述内容已准备就绪,请继续尝试以下内容:
  1. 在安装应用程序后,单击应用程序,因为只有启用了应用程序,您才能接收BOOT COMPLETE操作。

  2. 检查如下条件:

    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))


2
兄弟们都尝试了,但在Android 11上无法运行...所有其他Android版本都可以正常工作。 - Hannan Shahid
@HannanShahid 你试过这个吗?https://dev59.com/TVIH5IYBdhLWcg3wL6dJ - anshul

-2
在Android 11中,您需要在重新启动后打开应用程序以接收 Boot_Complete_receiver。

2
有关此的文档链接在哪里可以找到?这个要求是不是完全使广播无用了呢? - Nino van Hooff
为什么这个答案被标记为正确,它没有意义。 - Sãúrâßh Jáðhàv
1
这是不正确的。它使广播接收器变得无用。 - Rajesh Koshti

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