Как определить, требуется ли PIN/пароль/шаблон для разблокировки телефона?
Как определить, заблокирован ли телефон паролем, выводом или рисунком?
Благодарю вас!
Ответы
Ответ 1
Два метода
- Проверить программно - API 16 +
https://gist.github.com/doridori/54c32c66ef4f4e34300f
Обратите внимание, что вам не нужно проверять разблокировку лица, так как это требует, чтобы был установлен резервный выход pin/pass.
- Политика администратора устройства
Можно также просмотреть политики администратора устройства, которые позволяют устанавливать ограничения на то, как приложение настроено в отношении безопасности, включая ограничения на установление контактов/пропусков.
В стороне, это типы блокировок, которые вы хотите проверить, если используете зашифрованный Keystore
. здесь для получения дополнительной информации.
Ответ 2
Вы можете использовать класс Settings.Secure для запроса информации о безопасности, установленной на устройстве Android. Например, чтобы узнать, включен ли для пользователя шаблон блокировки, выполните следующие действия.
ContentResolver cr = getContentResolver();
int lockPatternEnable =
Settings.Secure.getInt(cr, Settings.Secure.LOCK_PATTERN_ENABLED);
lockPatternEnable
будет иметь 0, если он не был включен, и 1, если он был включен.
Ответ 3
Это должно быть хорошо для Android API 16 и выше, согласно документации. Я проверил это на 19, и это похоже на работу.
private boolean IsDeviceSecured () {
KeyguardManager keyguardManager =
(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); //api 16+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return keyguardManager.isDeviceSecure();
}
return keyguardManager.isKeyguardSecure ();
}