2014-02-06 61 views
1

我希望能够通过我的应用程序查询用户是否在其锁定屏幕上启用了密码或PIN。我怎么能这样做呢?如何检测用户是否启用了密码或PIN码?

我查看了How to detect if PIN/password/pattern is required to unlock phone?,但这似乎只告诉我该设备是否有图案锁定屏幕。我特别想知道用户是否启用了更安全的功能,例如一个别针或密码。 (如果所有这些情况都返回true,那么我可以确定,但在用户使用数字PIN或字母数字密码但不是模式锁定屏幕的情况下,实际返回false。

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

+0

查看我的更新的答案另一个你问的链接太问题http://stackoverflow.com/a/27801128/236743 :) – Dori

回答

1

"Stackoverflow: Check for lock"链接可以帮助您使用设备管理API。奇怪的是,只有对图案锁定屏幕识别的直接支持,但是我没有发现任何其他建议。
下面的链接也有一个链接到一个grepcode页面,这可以进一步帮助你。最近的答案显示您基本上执行getLong()以获取安全设置的值。从那里,你只需运行你计划运行的任何代码,基于你回来的数字!

+0

我在写这个问题之前看过这个页面。这很令人厌恶的是,我无法使它在ICS设备(非根区)或KK 4.4设备(根区)上工作。它总是返回1(LockType.NONE_OR_SLIDER),即使锁被设置为使用PIN。 – jwir3

+0

此外,GrepCode页面并不真正可用,因为它似乎隐藏在当前的android版本中(即我需要编译自己的SDK,这不是一个选项)。 – jwir3

+0

嗯,所以我能够找到以下内容:http://developer.android.com/reference/android/app/KeyguardManager.html#isKeyguardSecure%28%29问题依然存在,但是,因为我想能够在API <16(即API 14)上使用它,但直到API 16才支持它。那么,还有其他方法吗? – jwir3

相关问题