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