Я сталкиваюсь с очень непонятным поведением на устройствах Motorola при установке пароля не на английском языке (иврит). Позвольте мне объяснить сценарий:
Настройки -> Язык и ввод -> Клавиатура Google -> Язык ввода -> в разделе «Активные методы ввода» -> Иврит отмечен.
Теперь вернитесь в «Настройки» -> «Блокировка экрана» -> «Пароль» -> выберите свой пароль -> «Пароль содержит недопустимые символы». (После ввода нескольких слов на иврите, поэтому не удалось установить пароль)
Настройки -> Язык и ввод -> Язык -> Установить «Иврит» в качестве языка телефона.
Теперь (все на иврите) вернитесь в «Настройки» -> «Блокировка экрана» -> «Пароль» -> выберите свой пароль -> «Пароль содержит недопустимые символы». (После ввода нескольких слов на иврите, поэтому не удалось установить пароль)
Я не понимаю, почему он показывает мне такое поведение. Фактически, после смены языка телефона мне должно быть разрешено установить пароль на основе желаемого языка.
На самом деле, после смены языка телефона мне должно быть разрешено установить пароль на основе желаемого языка.
Ваше предположение здесь неверно, по крайней мере, для стандартного Android.
На основе исходного кода AOSP, который обрабатывает ввод пароля для экрана блокировки, ChooseLockPassword.java внутри validatePassword()
, вот фрагмент, который будет отображать сообщение «недопустимый символ»:
// allow non control Latin-1 characters only
if (c < 32 || c > 127) {
return getString(R.string.lockpassword_illegal_character);
}
Это означает, что ввод позволяет использовать только символы с кодом от 32 до 127 (исключительно). Это AZ, az, 0-9 и основные знаки препинания .
взято с http://www.asciitable.com/
Кроме этих символов, Android не примет пароль и не уведомит пользователя о наличии недопустимого символа.
Паванкумар Дубей
Эндрю Т.