如何检测用户是不是启用了密码或 PIN?

Posted

技术标签:

【中文标题】如何检测用户是不是启用了密码或 PIN?【英文标题】:How can I detect if the user has enabled a password or PIN?如何检测用户是否启用了密码或 PIN? 【发布时间】:2014-02-06 20:31:46 【问题描述】:

我希望能够通过我的应用程序查询用户是否在其锁定屏幕上启用了密码或 pin。我该怎么做?

我查看了How to detect if PIN/password/pattern is required to unlock phone?,但这似乎只是告诉我该设备是否具有图案锁定屏幕。我特别想知道用户是否启用了更安全的功能,例如密码或密码。 (如果它在所有这些情况下都返回 true,我会没问题,但如果用户有数字 PIN 或字母数字密码,但没有图案锁屏,它实际上会返回 false)。

我想我可以使用设备管理 API,但我不完全确定如何进行设置。此外,这似乎针对的是企业级应用程序的开发人员,他们希望在其客户端上执行某些策略。我是一名小型应用程序开发人员,因为它对我的工作有安全影响,所以我希望能够检测用户是否已经启用了这些功能。

【问题讨论】:

查看我对您链接的另一个 SO 问题的更新答案***.com/a/27801128/236743 :) 【参考方案1】:

此"***: Check for lock" 链接可以帮助您使用设备管理 API。奇怪的是,只有模式锁定屏幕识别的直接支持,但我发现没有其他建议。 下面的链接还有一个指向 grepcode 页面的链接,它可以进一步帮助您。最近的答案表明您基本上是通过getLong() 来获取安全设置的值。从那里,您只需根据返回的数字运行您计划运行的任何代码!

【讨论】:

在写这个问题之前我确实看过这个页面一次。糟糕的是,我无法让它在 ICS 设备(非根)或 KK 4.4 设备(根)上工作。它似乎总是返回 1 (LockType.NONE_OR_SLIDER),即使锁设置为使用 PIN。 另外,GrepCode 页面并不是真正可用的,因为它似乎隐藏在当前的 android 版本中(即我需要编译我自己的 SDK,这不是一个选项)。 嗯,所以我能够找到以下内容:developer.android.com/reference/android/app/… 不过,问题仍然存在,因为我希望能够在 API 潜在的解决方案似乎表明目前没有真正的其他方式,除非设备可能已植根。 ://

以上是关于如何检测用户是不是启用了密码或 PIN?的主要内容,如果未能解决你的问题,请参考以下文章

pin code中文是啥意思

如何检测是不是启用了防火墙产品?

如何检测是不是启用了 PHP JIT

检测用户是不是在域上启用了位置服务

iOS : Homekit - 如何检测设备中是不是启用蓝牙和 WiFi 服务?

iPad 检测用户是不是启用了暗模式,但不支持暗模式