我正在实施自定义'滑动解锁'屏幕。
如果'屏幕锁定'在设置中“刷卡”,我的应用正常运行。 在我的自定义'滑动解锁'屏幕 - >用户滑动即可解锁 - >它通过在我的活动中添加以下代码来解锁手机并直接进入主屏幕:
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
当屏幕锁定时会出现问题。在设置中是' PIN',上面的代码不会影响。我期望它会绕过默认'滑动解锁'屏幕并转到PIN输入'屏幕,因此用户无需刷两次即可输入PIN码。
更新
似乎我们无法避免默认'滑动解锁'屏幕,所以我尝试使用另一种使用指纹的方法。
@Override
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
mCallback.onAuthenticated();
}
目前,我必须触摸传感器两次,首先关闭我的锁定屏幕,然后触摸默认锁定屏幕。只需轻轻一按,next app即可关闭2个锁定屏幕,因此我认为可以这样做。
如果您有任何建议,请告诉我。非常感谢。
答案 0 :(得分:2)
不需要听指纹,只需在设备解锁时注册并关闭锁屏:
void registerUnlockReceiver() {
IntentFilter i = new IntentFilter(Intent.ACTION_USER_PRESENT);
registerReceiver(mUserUnlockedReceiver , i);
}
BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unlockAndExit(false);
}
};