在Android 6.0中使用DevicePolicyManager执行lockNow()后,我们如何保持无缝指纹解锁效果?
假设在带有指纹扫描仪的设备上,调用lockNow()的应用程序具有";USES_POLICY_FORCE_LOCK";并且已被授予设备管理员状态。
这是lockNow()函数的文档:
public void lockNow()
立即锁定设备,就好像在调用时锁定屏幕超时已过期一样。
调用设备管理员必须已请求USES_POLICY_FORCE_LOCK才能调用此方法;如果没有,则会引发安全异常。
获得"设备管理员"状态并执行锁定即可。为了便于参考,请参阅我使用的方法的SO问题。
问题是手机锁定后,指纹扫描仪无法顺利解锁手机。相反,指纹扫描仪会提示我输入后备PIN码为了在执行lockNow()调用后保持指纹解锁效果,我在Android 6.0中有什么新的事情要做吗?
我已经查看了所有DevicePolicyManager标志(在文档中),它似乎提供了禁用功能,而不是启用功能。
谢谢!
看起来谷歌在没有任何适当解释的情况下将其标记为预期工作。
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
如本链接中所述:https://code.google.com/p/android/issues/detail?id=79735,这似乎是智能锁的问题,而不仅仅是谷歌指纹扫描仪的问题。
如果您可以依赖root权限,您可能可以使用:PowerManager.goToSleep(0);
到目前为止,如果没有root权限,似乎没有更好的解决方案。