【问题标题】:BootReceiver not working in all android devicesBootReceiver 不适用于所有安卓设备
【发布时间】:2017-05-01 17:18:59
【问题描述】:

我一直在努力解决 Boot_complete 接收器在某些设备中无法工作的问题。

像 Vivo 设备一样,它具有带有自动启动管理器的 iManager 应用程序。 用户可以在设备启动时从自动启动切换应用程序。

在设备重启后我应该使用什么以及下面的意图过滤器来重启我的服务。

之前曾想过使用 Battery_Change 接收器,但它不能从清单中工作,因为我必须是运行时接收器寄存器。

任何建议都会很有帮助。

以下是我用作应用的意图过滤器的内容。在大多数设备中,它按预期工作。但不是全部。

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

【问题讨论】:

  • 您是否在清单中正确设置了权限?
  • 您的应用安装在哪里,外部存储还是内部存储?
  • 是的@chalithageekiyanage 我也保留了在清单中接收 boot_complete 的权限。
  • 安装位置是什么?

标签: android android-intent broadcastreceiver android-broadcastreceiver


【解决方案1】:

我和我的团队在遇到类似问题时发现了一件事。 您可以像这样监控 USB 状态:

<receiver
    android:name=".MyReceiver"
    android:enabled="true">
    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_STATE" />
    </intent-filter>
</receiver>

如果我没记错的话,这将在常​​规BOOT_COMPLETED 操作之前发送一个广播,告诉您有或没有任何 USB 连接。

一些制造商使用他们自己的BOOT_COMPLETED 版本,您可以阅读here,但USB_STATE 是一种替代方案,具体取决于您想做的事情。请注意,您可以使用此方法获得多个广播!

或者,您可以考虑使用 firebase sdk 中的 AccessibilityServiceJobService。更多详情here.

【讨论】:

  • 感谢您建议 USB_State 试一试。基本上下面是我在 logcat 中看到的 iManager 阻止应用程序获取 boot_complete 操作。 05-01 07:39:51.110 2155-2183/? W/BroadcastQueue:取消启动应用程序 com.testing.app/10178 用于广播 Intent { act=android.intent.action.BOOT_COMPLETED flg=0x8000010 (has extras) }:进程被禁止启动
  • 嗨,@Jordy 我试过 USB_STATE 但重启后无法在接收器中截获相同的事件。
  • 嗨@Jordy 得到以下问题 05-01 16:35:03.394 2219-4544/? W/BroadcastQueue:取消启动应用程序 com.testing.app/10180 进行广播 Intent { act=android.hardware.usb.action.USB_STATE flg=0x20000010 (has extras) }:进程被禁止启动
  • 嗨@jordylangen 遇到问题05-01 16:35:03.394 2219-4544/? W/BroadcastQueue: Cancel launching app com.testing.app/10180 for broadcast Intent { act=android.hardware.usb.action.USB_STATE flg=0x20000010 (has extras) }: process is forbid to start up
  • iManager 是否会阻止所有类型的意图接收?您可以通过检查用户是否解锁屏幕来尝试此操作 (android.intent.action.USER_PRESENT)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 2014-02-28
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多