1

我正在使用反射将我的设备屏幕设置键盘保护解锁为禁用。我的 android 版本是 4.4.2。调用时我得到java.lang.reflect.InvocationTargetException异常 并导致java.lang.SecurityException:LockSettingsWrite:既不是用户 10096 也不是当前进程具有 android.permission.ACCESS_KEYGUARD_SECURE_STORAGE。

我正在分享我的代码,请告诉我如何纠正这个异常

try{
   Class lockPatternUtilsCls = Class.forName("com.android.internal.widget.LockPatternUtils");
   Constructor lockPatternUtilsConstructor = lockPatternUtilsCls.getConstructor(new Class[]{Context.class});
   Object lockPatternUtils = lockPatternUtilsConstructor.newInstance(ChangeDeviceLockMode.this);

   Method clearLockMethod = lockPatternUtils.getClass().getMethod("clearLock", boolean.class);
   clearLockMethod.setAccessible(true);
   Method setLockScreenDisabledMethod = lockPatternUtils.getClass().getMethod("setLockScreenDisabled", boolean.class);
   setLockScreenDisabledMethod.setAccessible(true);
   clearLockMethod.invoke(lockPatternUtils, false);
   setLockScreenDisabledMethod.invoke(lockPatternUtils, true);     
   Toast.makeText(ChangeDeviceLockMode.this,"none", Toast.LENGTH_LONG).show();  
}catch(Exception e){
   System.err.println("An InvocationTargetException was caught!");
   Throwable cause = e.getCause();

   Toast.makeText(ChangeDeviceLockMode.this,"none"+e, Toast.LENGTH_LONG).show();  
}
Toast.makeText(ChangeDeviceLockMode.this,"Yupiee!!! Password changed successfully to swipe", Toast.LENGTH_LONG).show();  
}
4

1 回答 1

0

为什么在 KitKat 中会出现此错误:

在 KitKat 中,Android 将安全数据库从应用程序数据区 (/data/data) 移至系统数据区 (/data/system)。

参考

于 2016-05-04T06:21:39.340 回答