我注意到Android非常有趣的行为,我无法解释。我使用以下代码唤醒电话并禁用密钥保护:
PowerManager.WakeLock mFullWakelock = mPowerManager.newWakeLock(
(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP),
LOCK_TAG
);
mFullWakelock.acquire();
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock(LOCK_TAG);
keyguardLock.disableKeyguard();假设有一个周期的->disable密钥保护(以编程方式)->press电源按钮(手动)-> wake ->禁用密钥保护。循环工作很好,直到我手动按下主页按钮,而手机的钥匙保护被禁用。在那之后,手机确实会醒过来,但是键盘保护不再以编程方式被禁用。任何想法我都会感激的!
发布于 2014-11-13 11:28:28
问题是,每当用户按home按钮或打开通知时,密钥锁就会过期。因此,无论何时发生这种情况,您都必须创建一个新的密钥锁。
我使用了这个解决方案,效果很好:https://stackoverflow.com/a/14519861/4098821
发布于 2016-05-04 12:42:01
我有同样的问题,我解决了它使用反射和我的应用程序作为系统签名的应用程序。
下面是代码:
try{
Class lockPatternUtilsCls = Class.forName("com.android.internal.widget.LockPatternUtils");
Constructor lockPatternUtilsConstructor =
lockPatternUtilsCls.getConstructor(new Class[]{Context.class});
lockPatternUtilsConstructor.setAccessible(true);
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--"+cause, Toast.LENGTH_LONG).show();
Toast.makeText(ChangeDeviceLockMode.this,"none--"+e, Toast.LENGTH_LONG).show();
}您还需要在清单中添加权限。
android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />此权限要求应用程序进行系统签名。
https://stackoverflow.com/questions/26898136
复制相似问题