如何访问Android设备的密码类型设置?

如何访问Android设备的密码类型设置?,android,Android,我正在尝试访问我的设备密码类型设置,并获得SettingNotFoundException,即使该设备设置了锁定密码 我尝试过使用这个问题中建议的LockPatternUtils,但它不起作用 以下是我正在做的(以及LockPatternUtils所做的): 这就是SettingNotFoundException发生的地方,因为它显然找不到该设置 这是踢球的人。我正在两个不同的设备上测试。一个密码为6个字符,另一个PIN为4个字符。第一个是安卓4.1.2,另一个是安卓4.2.1。它在运行于4.1

我正在尝试访问我的设备密码类型设置,并获得SettingNotFoundException,即使该设备设置了锁定密码

我尝试过使用这个问题中建议的LockPatternUtils,但它不起作用

以下是我正在做的(以及LockPatternUtils所做的):

这就是SettingNotFoundException发生的地方,因为它显然找不到该设置

这是踢球的人。我正在两个不同的设备上测试。一个密码为6个字符,另一个PIN为4个字符。第一个是安卓4.1.2,另一个是安卓4.2.1。它在运行于4.1.2的第一个版本上运行良好


谢谢大家!

欢迎您获取有关密码质量等信息以及设备管理API。

由于这不是一个有文档记录的设置,您希望它在设备和操作系统版本之间可靠工作是不现实的。特别是在4.2上,这可能是每个用户的值。您知道有任何其他方法可以访问此信息吗?特别是设备是否使用密码或PIN码,以及它的长度?嘿,我有一个设备运行在4.1.2上,具有4位PIN码。mDevicePolicyManager.getPasswordQuality(adminComponent)每次都返回0。有什么想法吗?@bsimic:
getPasswordQuality()
根据所有密码管理器的单个请求,告诉您请求的密码质量是什么。当我写下我的答案时,我记忆犹新,因为你无法通过设备管理API找到关于当前密码的大量信息。如果需要,您可以调用
isactivePasswordEnough()
,但这需要您是一名活动设备管理员,并且它只会告诉您当前密码是否满足当前密码要求。由于getPasswordQuality()返回0,isactivePasswordEnough()不总是返回true吗?我只是想弄清楚是否使用密码或PIN锁定了设备,而不必自己设置设备锁定设置。@bsimic:“既然getPasswordQuality()返回0,IsActivePasswordEnough()是否总是返回true?”--您需要临时更改密码规则,查看当前密码是否符合这些规则。感谢您清除这些。这是我第一次搞安卓设备政策。谢谢你的时间!
    try {
        result = android.provider.Settings.Secure.getLong(
                mContentResolver, "lockscreen.password_type");
    } catch (SettingNotFoundException e) {
        Log.d("Cannot get key", "cannot get long value", e);
    }