Erl*_*end 5 security android locking
如果用户没有锁定屏幕或仅启用了滑动,我希望我的应用程序表现不同(不存储内容).最常见的答案是:检查是否已启用锁定,以便在升级到Android 4.3后代码不再有效.
无论如何在Android 4.3上检测到这个?
好的,所以似乎可以通过一些反思来实现.不是最好的解决方案,但至少它适用于我们尝试的设备:
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)
您可以使用 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)