android 7.0 添加的特性 支持“直接启动”模式 android:directBootAware="true"
系统在设备锁未及时释放时 data/data/ 目录下的路径都是加密路径,此时操作磁盘数据都会出 “Data directory doesn't exist for package” 的错误
除了谷歌官方 列出的 ”直接启动”模式下运行的一些常见应用用例外最近我们部门开发的launcher 应用也会添加 ”直接启动”模式,当launcher启动的过
程超越了系统锁释放的时机时,初始化数据库就会出现异常而system 又需要等待launcher的启动才能释放用户用户设备锁状态,这样就陷入了一个一
直重启launcher的循环状态。
设备锁状态通知的三个重要的广播:
- android.intent.action.LOCKED_BOOT_COMPLETED 锁住设备
- android.intent.action.BOOT_COMPLETED 用户解 锁住设备 但此广播不会及时 会延迟通知
- android.intent.action.USER_UNLOCKED 立即获得通知
除了广播通知外,开发人员也可以通过 查询监听 UserManagerCompat.isUserUnlocked(mContext) 的方法查询用户锁锁住的状态,只要返回为true 即可
正常操作磁盘数据。
参考 : https://developer.android.google.cn/training/articles/direct-boot?hl=zh-cn