【问题标题】:Mobilock app starts before BOOT_COMPLETED broadcast... How is it possible?Mobilock 应用程序在 BOOT_COMPLETED 广播之前启动......这怎么可能?
【发布时间】:2018-01-04 19:36:32
【问题描述】:

有一个名为 Mobilock 的信息亭应用程序。这个应用程序的启动速度比我自己的以 BOOT_COMPLETED 广播开始的应用程序要快得多(大约 5 秒前)。

我自己的应用程序具有最高优先级,即整数的最大值。所以这与优先级无关。

这些家伙找到了一种方法,可以比 BOOT_COMPLETED 广播早 5 秒启动他们的应用程序。

有人知道他们在做什么吗?

【问题讨论】:

    标签: android android-broadcastreceiver


    【解决方案1】:

    天哪!我很幸运找到了它。 :)

    This Page Says :应用程序必须先向系统注册其组件,然后才能在直接启动模式下运行或访问设备加密存储。应用程序通过将组件标记为加密感知来向系统注册。要将您的组件标记为加密感知,请在清单中将 android:directBootAware 属性设置为 true。

    加密感知组件可以注册以在设备重新启动时从系统接收 ACTION_LOCKED_BOOT_COMPLETED 广播消息。此时设备加密存储可用,您的组件可以执行需要在 Direct Boot 模式下运行的任务,例如触发计划警报。

    你只需要放

    android:directBootAware="true"

    所以清单中的代码是;

    <receiver
      android:directBootAware="true" >
      ...
     <intent-filter>
      <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
     </intent-filter>
    </receiver>
    

    【讨论】:

    • 这个解决方案是解决其他遭受 BOOT_COMPLETED 广播延迟问题的方法。
    • 伟大的 Serhat!
    【解决方案2】:

    也听android.intent.action.QUICKBOOT_POWERONandroid.intent.action.LOCKED_BOOT_COMPLETED

    似乎是设备相关的,先发送哪个广播。

    【讨论】:

    • 谢谢,但这不是我的问题。我认为这些家伙找到了比引导广播更早的触发因素。我需要找到这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 2012-07-06
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多