【问题标题】:BroadcastReceiver can't receive broadcast after reboot when boot completed permission id disabled启动完成权限 id 禁用后,BroadcastReceiver 无法在重新启动后接收广播
【发布时间】:2014-01-15 12:04:21
【问题描述】:

在小米 2A,Android 版本 4.1 中,除非我启动我的应用程序,否则我在重启后无法接收任何广播。除非用户打开,否则小米默认禁用应用程序的启动完成广播。 我在这里阅读了很多帖子:

Broadcast receiver not working in ICS if the app is not started atleast once

http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

Cannot receive broadcast in ICS

他们都说谷歌只是在 Android 3.0 版本之后实现了它。事实是我的Android 4.3 Galaxy Nexus,即使应用程序在重启后没有启动,也可以接收自定义广播(未启动完成)。 即使使用小米系统,打开我的应用程序的启动完成权限后也可以接收广播。谁能告诉我为什么?

这里是发送意图:

    Intent intent = new Intent();
    intent.setAction("com.test.test");
    intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES | intent.getFlags());
    context.sendBroadcast(intent);

接收如下:

  <receiver
        android:name="com.test.TestReceiver"
        android:exported="true">
    <intent-filter>
        <action android:name="com.test.test"></action>
    </intent-filter>   
  </receiver>

public class TestReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals("com.test.test")) {
            Log.e("Chris", "received test action");
        }
    }
}

【问题讨论】:

  • 能发一下代码吗
  • 它只是一个静态接收器,在意图过滤器中有一个动作。
  • 可能还有更多问题......兄弟,我们不是在没有看到代码的情况下告诉你解决方案的向导:)
  • 您的代码不适用于“启动完成广播”。
  • 是的,只是我应用的启动完成权限被小米系统禁用了。我只想发送自定义广播,而不是启动完成广播。

标签: android


【解决方案1】:

在小米中,您可以选择所有应用程序可以自动启动。

Security App > Permissions > Autostart

您可以在此处允许您的应用自动启动。

我想这会解决你的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多