不禁用指纹的情况下锁定屏幕

10
我有以下问题。 我正在尝试创建一个锁定屏幕的应用程序。通过DevicePolicyManager的方法非常有效。到此为止还好。但是,当我使用DPM锁定手机时,指纹解锁方法被禁用,我必须输入我的图案(或PIN码或我设置的任何密码)才能解锁手机。如果我使用正常的方式锁定它(例如使用电源按钮),则指纹解锁可以正常工作。
所以我的问题是: 如何在程序中锁定屏幕,并能够通过指纹解锁后再次打开?
附注:我有一个带Marshmallow的Galaxy S5 mini的Lineage OS。
4个回答

5

这是正常的流程。它将设备带到重新启动状态,在该状态下设备将要求输入图案或密码。谷歌没有提供任何API来实现此功能。您可以在Play商店中检查任何具有锁定功能的应用,其行为都会是这样。

编辑: 对于您提出的以下问题,响应在此处共享:

  1. 用户如何在不使用电源按钮的情况下锁定手机(例如通过应用程序),并仍然能够使用指纹解锁?

    故意没有为应用程序调用锁定设备的API。

  2. 这是否存在安全问题/问题?

    是的,如果允许应用程序锁定设备,就会存在拒绝服务(DOS)的问题。无论是故意还是意外(应用程序错误)。

在此处找到[https://code.google.com/p/android/issues/detail?id=79735#c115]

我认为您需要搜索如何使用应用程序快捷方式而不是电源按钮进行锁定。至少我能帮到这个程度。


谢谢您的回答,但我不同意。例如,“Greenify”应用程序允许用户创建一个锁定屏幕但不重新启动设备的快捷方式。 - ChesterKing
刚刚尝试了一下。看起来它们将设备置于睡眠模式而不是锁定状态。你需要锁定设备对吗? - Ashwin Mothilal
你的链接是指带有keyguard的部分吗?它不会将设备置于睡眠模式... - ChesterKing
关于Greenify,它必须先关闭所选应用程序,然后才能进入睡眠模式,但不知何故它确实进入了睡眠模式,你知道原因吗? - ChesterKing
@ChesterKing shell方法有点慢...即使使用“sendevent”,我也能感觉到延迟。 - GorvGoyl
显示剩余4条评论

5
请注意,Apex Launcher或Nova Launcher采用了不同的方式。通过Apex Launcher或Nova Launcher进行屏幕锁定不会禁用指纹扫描!它实际上是将屏幕设置为完全黑色,即软锁定(这会给用户一种屏幕关闭的错误印象),然后在5-10秒后,由于超时,显示器实际上会关闭。
其他应用程序也实现了相同的功能,例如OFF+(屏幕关闭/指纹解锁支持)。(我猜它修改了“锁定屏幕超时”
如果手机已经root,则可以执行shell命令来模拟电源键su input keyevent 26,但可能会有一点延迟。
好吧,如果有些root用户正在寻找,还有一个Xposed模块可以解决这个问题。FingerprintEnabler

3
我想对JerryGoyal的优秀答案进行一些补充。
以下是来自Microsoft Launcher的截图,显示了两种锁定屏幕的方法。它清楚地说明通过设备策略管理器的方法不能使用指纹。
通过显示黑屏直到屏幕超时的方法可以解决问题。
在下一个屏幕上,需要请求修改系统设置以更改屏幕超时时间。 Microsoft Launcher

0

来自https://issuetracker.google.com/issues/37010802#comment148(发布于2018年8月9日上午08:26):

Android 9终于为此添加了一个解决方案(或者说是一个变通方法,这取决于你的看法)。新增了一个AccessibilityService全局操作来锁定设备[1],[2]。Nova Launcher已经在最新的beta版本中使用了这个服务操作的屏幕锁定方法,并且它允许锁定设备并保持指纹解锁和SmartLock工作。但是,令人沮丧的是,您的应用程序用户必须为您的应用程序启用辅助功能服务。而启用任何辅助功能服务都会破坏Snackbar动画[3](它不再在屏幕上滑动,而是只是出现在那里,没有任何动画效果)。
[1] https://developer.android.com/about/versions/pie/android-9.0#a11y-convenience-actions [2] https://developer.android.com/reference/android/accessibilityservice/AccessibilityService#GLOBAL_ACTION_LOCK_SCREEN [3] https://issuetracker.google.com/issues/37092972

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接