Не без модификации ядра или сокращения пользовательских привилегий на устройстве. Думайте об этом как о компьютере Linux, где у пользователя сотового телефона есть root.
Можете ли вы помешать им удалить ваше приложение? Нет.
Но вы можете сделать это болезненным и достаточно трудным, чтобы оно того не стоило, и включить оповещения, которые указывают, что он был удален.
Во-первых, я бы изменил программное обеспечение так, чтобы оно периодически запрашивало и успешно отвечало на криптографический запрос / ответ с удаленного сервера - ежедневно должно быть достаточно, и это не повлияет на использование батареи. Таким образом, ваш сервер знает, когда он был отключен (может быть продан за дополнительную плату в 10 долларов США в год), и вы можете предупредить покупателя.
Во-вторых, я бы привязал программное обеспечение к системе на уровне драйвера, чтобы удаление также удаляло текстовые сервисы. Существуют драйверы или службы, которые использует приложение для текстовых сообщений, которые могут быть заменены вашими собственными версиями, и при удалении приложение для текстовых сообщений станет бесполезным. Скорее всего, вы уже подключены к системе аналогичным образом, чтобы блокировать приложение для работы с текстовыми сообщениями (и другие приложения), когда путешествуете слишком быстро.
В-третьих, я хотел бы рассмотреть возможность установки программы мониторинга, которая запускается как отдельный процесс (посмотрите, как последние вирусы работают для подсказок). Он проверит, чтобы убедиться, что приложение не только работает, но и работает последняя версия, а также нет симулятора GPS или другой программы, которая мешает вашему приложению получать правильные данные GPS.
Мне любопытно, как вы отличаете текстовые сообщения водителя от друга, сидящего на сиденье пассажира, отправляющего текстовые сообщения на камеру водителя.
-Adam