То, что вы ищете, это администрирование устройств
http://developer.android.com/guide/topics/admin/device-admin.html
На этой странице объясняется, как это работает и как вы можете изменить всевозможные политики в отношении паролей и отключить камеру.. и так далее.
О чем они почти не говорят, так это о том, что как только приложение включено от имени администратора устройства, вы не можете его убить или удалить, не отключив сначала эту функцию. Вам решать, как правильно реализовать кнопки включения/отключения.
Чтобы быть уверенным, что служба всегда перезапускается, даже если она убита системой (в случаях с низким уровнем ресурсов), вам необходимо переопределить этот метод вашей службы:
public int onStartCommand (Intent intent, int flags, int startId)
{
return START_STICKY;
}
Наконец, чтобы ваш сервис запускался при загрузке, вам нужно поймать трансляцию ACTION_BOOT_COMPLETED.
Основная проблема заключается в том, что вы не можете запретить пользователю отключать GPS или использовать фиктивные местоположения, но вы можете обнаружить это и зарегистрировать. Это хорошая практика (на самом деле это обязательно в моей стране) замечать пользователей, за которыми они наблюдают, чтобы вы могли объяснить им в то же время, что вы знаете, если они испортят GPS.
Укоренение телефона — еще одно решение, но вы, скорее всего, откроете больше дверей, чем закроете;)
person
Rox Teddy
schedule
31.07.2015