Максим Денисов, разработчик в Лиге Цифровой Экономики, поделился опытом создания системы управления доступом на Android и рассказал, как менялся подход к контролю доступа.
В этой статье расскажу, как изменился подход к контролю доступа к корпоративному устройству внутри одной компании.
Нашей задачей была разработка приложения, которое заблокирует доступ к потерянному устройству на Android, будет отправлять действия пользователя на сервер и обновляться также с сервера.
Такой опыт, на мой взгляд, будет интересен для тех, кто работает над подобными задачами, например системами управления корпоративной техникой или родительского контроля.
Разработка началась в 2015 году, когда 5-я версия Android была последней.
1. Подход на основе блокирующей view
1.1. Блокировка
Суть подхода — работа блокирующего окна, которое отображается поверх всех остальных. После авторизации оно закрывается.
В манифесте приложения нужно добавить следующее разрешение:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
С API 23 необходимо явно его указывать. Поэтому при настройке приложения администратор должен выбрать «Разрешать всегда».
У блокирующего экрана добавить свойства:
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
Кроме того, следует создать сервис, в котором ресивер отлавливает выключение экрана и вызывает блокирующую view.