Устройство не позволяет использовать неанглийский язык для пароля блокировки экрана

Я сталкиваюсь с очень непонятным поведением на устройствах Motorola при установке пароля не на английском языке (иврит). Позвольте мне объяснить сценарий:

  1. Настройки -> Язык и ввод -> Клавиатура Google -> Язык ввода -> в разделе «Активные методы ввода» -> Иврит отмечен.

  2. Теперь вернитесь в «Настройки» -> «Блокировка экрана» -> «Пароль» -> выберите свой пароль -> «Пароль содержит недопустимые символы». (После ввода нескольких слов на иврите, поэтому не удалось установить пароль)

    недопустимый символ в английском языке

  3. Настройки -> Язык и ввод -> Язык -> Установить «Иврит» в качестве языка телефона.

  4. Теперь (все на иврите) вернитесь в «Настройки» -> «Блокировка экрана» -> «Пароль» -> выберите свой пароль -> «Пароль содержит недопустимые символы». (После ввода нескольких слов на иврите, поэтому не удалось установить пароль)

    недопустимый символ на иврите

Я не понимаю, почему он показывает мне такое поведение. Фактически, после смены языка телефона мне должно быть разрешено установить пароль на основе желаемого языка.

Ответы (1)

На самом деле, после смены языка телефона мне должно быть разрешено установить пароль на основе желаемого языка.

Ваше предположение здесь неверно, по крайней мере, для стандартного 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 и основные знаки препинания .

ASCII-таблица взято с http://www.asciitable.com/

Кроме этих символов, Android не примет пароль и не уведомит пользователя о наличии недопустимого символа.

:: Роджер, теперь, выпущенные Motorola Market устройства, устаревшие телефоны и телефоны, которые будут запущены (над которыми я работаю), унаследовали эти общие вещи от Android, поэтому эти функции должны быть удалены, вызывая путаницу, и это ошибка, не так ли? думаю да.
Ну не могу сказать баг это или нет. Стандарта проверки пароля не существует, поэтому я не думаю, что это вина Google/Motorola, если это вообще считается проблемой.