在Android 6.0 中使用lockNow 后如何保留指纹解锁?

Posted

技术标签:

【中文标题】在Android 6.0 中使用lockNow 后如何保留指纹解锁?【英文标题】:How to retain fingerprint unlock after using lockNow in Android 6.0? 【发布时间】:2016-02-13 05:24:32 【问题描述】:

android 6.0中使用DevicePolicyManager执行lockNow()后如何保持无缝指纹解锁效果?

假设在带有指纹扫描仪的设备上和调用 lockNow() 的应用程序具有“USES_POLICY_FORCE_LOCK”并已被授予设备管理员身份。

这是 lockNow() 函数的文档:

public void lockNow ()

立即锁定设备,就好像锁定屏幕超时在此调用时已过期。

调用设备管理员必须请求USES_POLICY_FORCE_LOCK 才能调用此方法;如果没有,则会抛出安全异常。

获得设备管理员状态并执行锁定就好了。作为参考,我使用的方法见this SO question。

问题是手机锁定后,指纹无法顺利解锁手机。相反,指纹扫描仪会提示我输入备用 PIN 码。在执行 lockNow() 调用后,为了保持指纹解锁效果,我在 Android 6.0 中是否需要做一些新的事情?

我查看了所有 DevicePolicyManager 标志 (in the documentation),它似乎提供了禁用而不是启用的功能。

谢谢!

【问题讨论】:

我不确定,但我认为我的问题与您的问题有关。我也会留意这里***.com/questions/33945568/… 【参考方案1】:

看起来 Google 已将其标记为按预期工作,但没有任何适当的解释。

https://code.google.com/p/android/issues/detail?id=79735#c110

还有这里 https://code.google.com/p/android/issues/detail?id=191955#c23

因此,我们目前无法在保持智能锁正常工作的同时以编程方式锁定屏幕。他们还说“开发人员使用不正确”。不知道他们是在开玩笑还是认真的。

编辑:这里有一些不令人满意的解释https://code.google.com/p/android/issues/detail?id=79735#c115

【讨论】:

引用那里的回复"We have looked into the issue you have reported and would like to inform that this is 由于应用程序开发人员错误地使用了 lockNow() 而按预期工作This needs to be handled by the respective app developers for the upcoming release of Android N. "我刚刚读了什么??? 谢谢!至少有一位 Google 员工在 2016 年 6 月 2 日第 79735 期的第 115 号帖子中提供了关于为什么他们将其标记为“按预期工作”的说明...... 在 #116 上,反论点很好。谷歌的做法仍然让我感到困惑。他们将 DoS 列为安全问题。但有趣的是,Android 到处都是这样的 DoS 机会。例如,第 3 方应用程序锁和锁屏的工作原理,通过不断地将 Activity 以无限循环的方式拉到最前面【参考方案2】:

正如链接中提到的:https://code.google.com/p/android/issues/detail?id=79735,这似乎是智能锁的问题,而不仅仅是谷歌印记(指纹扫描仪)。

如果您可以依赖 root 权限,您可能可以使用:PowerManager.goToSleep(0);

如果没有 root 权限,目前似乎没有更好的解决方案。

【讨论】:

以上是关于在Android 6.0 中使用lockNow 后如何保留指纹解锁?的主要内容,如果未能解决你的问题,请参考以下文章

DevicePolicyManager.lockNow();安全设置设置为幻灯片/无时不关闭屏幕

android 自定义的launcher在6.0后需要动态申请权限?

Android 6.0 运行时权限管理

IBM Worklight 6.0 - Android 应用程序在 7 月安全更新后未连接到服务器

Android 6.0 api 23 - 获得许可后,我的位置为空[重复]

Android 6.0通知栏下拉动画缓慢的问题