Android 4.3:如何检查用户是否启用了锁定?

Erl*_*end 5 security android locking

如果用户没有锁定屏幕或仅启用了滑动,我希望我的应用程序表现不同(不存储内容).最常见的答案是:检查是否已启用锁定,以便在升级到Android 4.3后代码不再有效.

无论如何在Android 4.3上检测到这个?

Erl*_*end 8

好的,所以似乎可以通过一些反思来实现.不是最好的解决方案,但至少它适用于我们尝试的设备:

        Class<?> clazz = Class.forName("com.android.internal.widget.LockPatternUtils");
        Constructor<?> constructor = clazz.getConstructor(Context.class);
        constructor.setAccessible(true);
        Object utils = constructor.newInstance(context);
        Method method = clazz.getMethod("isSecure");
        return (Boolean)method.invoke(utils);
Run Code Online (Sandbox Code Playgroud)


Mik*_*Ptr 5

您可以使用 KeyguardManager 进行检查:

KeyguardManager keyguardMgr = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
if(keyguardMgr.isKeyguardSecure()){
    // Secure keyguard, the keyguard requires a password to unlock
} else {
    // Insecure keyguard, the keyguard doesn't require a password to unlock
}
Run Code Online (Sandbox Code Playgroud)