我需要一个服务才能在我的应用程序的后台运行,我希望它在手机开机时自动启动。 我已经获得了BOOT_COMPLETED的常用intent-filter但是会发生什么......
在我要求锁定屏幕之前,我想要/需要这份工作。
这是在运行Android N的Pixel上。
干杯。
答案 0 :(得分:5)
您的问题是由于Android 7.0在设备启动但用户尚未解锁设备时运行安全的直接启动模式。这会限制在用户解锁设备之前访问凭据加密存储。因此,您的应用必须注册才能使用设备加密存储,以便在直接启动模式下以及用户解锁设备后使用。
This article讨论了它的工作原理和示例用例(预定通知,短信应用等),但您的代码缺少的是receiver
和
ACTION_LOCKED_BOOT_COMPLETED
的intent-filter
。
基本上,您需要清单中的以下代码
<receiver
android:directBootAware="true" >
...
<intent-filter>
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
</receiver>
如果您需要更多帮助,请与我们联系!