Подтвердить что ты не робот

Как определить, требуется ли PIN/пароль/шаблон для разблокировки телефона?

Как определить, заблокирован ли телефон паролем, выводом или рисунком?

Благодарю вас!

4b9b3361

Ответ 1

Два метода

  • Проверить программно - API 16 +

https://gist.github.com/doridori/54c32c66ef4f4e34300f

Обратите внимание, что вам не нужно проверять разблокировку лица, так как это требует, чтобы был установлен резервный выход pin/pass.

  1. Политика администратора устройства

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

В стороне, это типы блокировок, которые вы хотите проверить, если используете зашифрованный 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 ();
}