我正在研究一个应用程序,它将取代Android设备的默认锁定屏幕(滑动解锁)。我已成功完成此操作,方法是禁用键盘锁管理器并使用广播接收器显示屏幕关闭和屏幕开启意图。现在,问题是当我因任何原因再次设置默认屏幕锁定时,我的应用程序不会禁用键盘锁,除非我强制关闭它并再次启动它。Android键盘锁
km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
if(km.inKeyguardRestrictedInputMode()) {
//it is locked
km = (KeyguardManager) getApplicationContext().getSystemService(KEYGUARD_SERVICE);
kl=km.newKeyguardLock("com.example.helloworld.MainActivity");
kl.disableKeyguard();
} else {
Intent i = getIntent();
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
}
如果您收到屏幕关闭的广播,是否可以使用[isKeyGuardLocked()](http://developer.android.com/reference/android/app/KeyguardManager.html#isKeyguardLocked())检查if它被锁定,然后立即禁用它呢? – MarchingHome
我已经在使用它,但由于未知原因它不会再次禁用它。一旦我强制关闭应用程序并再次启动它,那么一切运行良好。 – salman