时间 2022-01-06
安卓密码解锁流程
安卓原生的密码解锁页面的View是KeyguardPasswordView,谷歌对此view的注释是
/**
* Displays an alphanumeric (latin-1) key entry for the user to enter
* an unlock password
*/
显示一个字母数字 (latin-1) 键条目供用户输入解锁密码
1、这个view提供了一个键盘用于组合密码的输入,在键盘上可以进行密码输入、删除、确认等操作。
2、此View中重写了onEditorAction方法,用于检查是否按下了回车键。
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
// Check if this was the result of hitting the enter key
final boolean isSoftImeEvent = event == null
&& (actionId == EditorInfo.IME_NULL
|| actionId == EditorInfo.IME_ACTION_DONE
|| actionId == EditorInfo.IME_ACTION_NEXT);
final boolean isKeyboardEnterKey = event != null
&& KeyEvent.isConfirmKey(event.getKeyCode())
&& event.getAction() == KeyEvent.ACTION_DOWN;
if (isSoftImeEvent || isKeyboardEnterKey) {
verifyPasswordAndUnlock();
return true;
}
return false;
}
3、在此方法中,我们能看到,当按下回车键的时候,触发校验密码的逻辑。当前类中没有verifyPasswordAndUnlock()这个方法,此类继承于KeyguardAbsKeyInputView,所以此处调用的是父类中的方法。所以后续流程和安卓PIN码解锁的流程就相同。
这里可以看我写的PIN码解锁流程
https://blog.csdn.net/yht1364488/article/details/122304015