Установить разблокировку экрана устройства с помощью отражения

Я использую отражение, чтобы разблокировать экранную клавиатуру настройки моего устройства, так как версия Android Android disabled.my: 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();  
}

1 ответ

Почему эта ошибка происходит в KitKat:

В KitKat Android переместил базы данных безопасности из области данных приложения (/data/data) в область системных данных (/data/system).

ссылка

Другие вопросы по тегам