2014-02-06 3 views
1

Я хотел бы иметь возможность запросить через мое приложение, разрешал ли пользователь вводить пароль или контакт на экране блокировки. Как я могу это сделать?Как определить, включен ли пользователь пароль или PIN-код?

Я просмотрел How to detect if PIN/password/pattern is required to unlock phone?, но это только говорит мне, есть ли у устройства экран блокировки рисунка. Мне особенно хотелось бы узнать, активировал ли пользователь что-то более безопасное, например. булавкой или паролем. (Я был бы в порядке, если бы он вернул true для всех этих случаев, но фактически возвращает false в том случае, если у пользователя есть числовой PIN-код или буквенно-цифровой пароль, но не экран блокировки рисунка).

Я думаю, что могу использовать API управления устройствами, но я не совсем уверен, как это сделать. Более того, это, по-видимому, предназначено для разработчиков приложений уровня предприятия, которые хотят обеспечить соблюдение определенных политик для своих клиентов. Я небольшой разработчик приложений, и поскольку у меня есть разветвления безопасности в отношении того, что я делаю, я просто хотел бы узнать, действительно ли пользователь уже включил эти функции.

+0

Ознакомьтесь с моим обновленным ответом на другом вопросе, который вы тоже ссылаетесь http://stackoverflow.com/a/27801128/236743 :) – Dori

ответ

1

Эта ссылка "Stackoverflow: Check for lock" может помочь вам с использованием API управления устройствами. Странно, что есть только прямая поддержка распознавания экрана блокировки паттерна, но я ничего не нашел в другом.
Ссылка ниже также содержит ссылку на страницу grepcode, которая также может помочь вам. Самый последний ответ показывает, что вы в основном делаете getLong(), чтобы получить значение параметров безопасности. Оттуда вы просто запускаете любой код, который вы планировали при запуске, исходя из числа, которое вы возвращаете!

+0

Я видел эту страницу один раз, прежде чем писать этот вопрос. Что от этого зависит, так это то, что я не смог заставить его работать на устройствах ICS (без привязки) или на устройствах KK 4.4 (с корнем). Кажется, что всегда возвращается 1 (LockType.NONE_OR_SLIDER), даже если блокировка установлена ​​на использование ПИН-кода. – jwir3

+0

Кроме того, страница GrepCode не может быть использована, потому что она кажется скрытой в текущей версии Android (т. Е. Мне нужно будет скомпилировать собственный SDK, что не является вариантом). – jwir3

+0

Хм, поэтому я смог найти следующее: http://developer.android.com/reference/android/app/KeyguardManager.html#isKeyguardSecure%28%29 Проблема все еще существует, потому что я хотел бы быть в состоянии использовать это на API <16 (а именно, API 14), но он не поддерживается до API 16. Итак, есть ли другой способ? – jwir3

Смежные вопросы