2015-01-09 5 views
1

Я хочу защитить паролем свое приложение, так что, когда он запускается или возобновляется с фона, необходимо ввести ПИН. Я сделал это на iOS, используя UIView, который закрывает экран и исчезает при вводе правильного PIN-кода (аналогично паролю, который можно включить в приложении Dropbox). Однако на Android я не уверен, как это сделать. Если я создаю фрагмент или действие кода доступа, я думаю, его можно просто удалить, нажав кнопку «Назад». Я знаю, что кнопка назад может быть перепрограммирована, но я думаю, что это может вызвать некоторые нежелательные эффекты. (например, необходимо очистить задний стек при представлении представления кода доступа)Код доступа для доступа к приложению

Проверка PIN-кода, выполнение макета пользовательского интерфейса и все это в порядке, но проблема заключается в том, как его представить (с программной точки зрения). Рекомендуется ли прикрывать приложение фрагментами, активностью или чем-то еще? Как я могу заставить пользователя использовать приложение, когда присутствует вид кода доступа, но во всех других случаях нет (побочного) эффекта для приложения?

+1

Вы можете создать диалог и 'setCanclable (fasle),' для него. закройте диалоговое окно, когда пользователь вводит правильный PIN-код и нажимает кнопку ok. –

+0

Спасибо! В идеале я хотел бы создать пользовательский вид, чтобы я мог модифицировать пользовательский интерфейс, но мне нравится, но ваше решение является хорошей резервной копией, если я не могу безопасно представить настраиваемое подобное представление :-) – Jorn

+4

Вы можете настроить диалог так вы хотите. Вы также можете сделать это в Activity. Вы можете просто отключить кнопку BACK из этой операции, переопределив 'onBackPressed()' и игнорируя кнопку BACK. Это не оказывает нежелательного воздействия на ваше приложение. –

ответ

1

Если вы переопределили onBackPressed() активности, при нажатии кнопки никаких побочных эффектов не будет. Вы можете сделать это в своей настраиваемой деятельности, которая покрывает экран или главную функцию, если вы используете фрагмент и проверяете наличие «LockFragment» или приложение находится в незаблокированном состоянии, чтобы реагировать на нормальное состояние.

активность Код:

@Override 
onBackPressed(){ 
    if(check if your Fragment is present){ 
    //do noting 
    } else { 
    //react normal 
    super.onBackpressed() 
    } 
} 
Смежные вопросы