Как предотвратить удаление приложения?

Я разрабатываю приложение для родителей, чтобы следить за своими детьми. Так что это приложение не может быть удалено ребенком. Мне нужно знать, как сделать его недоступным для установки, или пользователю нужен пароль для удаления этого приложения.


person Ankur Mistry    schedule 24.09.2011    source источник
comment
Видите ли вы какие-либо веские причины для того, чтобы этот тип функциональности не существовал, если устройство не рутировано?   -  person Jon    schedule 24.09.2011
comment
Просто чтобы расширить комментарий Джона, на случай, если вы упустили его точку зрения, если бы эта функциональность существовала, это было бы очень плохо.   -  person Perception    schedule 24.09.2011
comment
@jon, и восприятие, я знаю, что это очень плохо, но это то, что требует клиент, я не могу с ним спорить, и я уже сказал ему не для записи, что если нужно такое сильное ограничение, то почему вы даете сотовый телефон своему дети.   -  person Ankur Mistry    schedule 24.09.2011
comment
я думаю, что эта ссылка дает все ответы, которые говорят, что это невозможно, большое спасибо @willytate developer.android.com/guide/topics/admin/device-admin.html   -  person Ankur Mistry    schedule 24.09.2011
comment
так как у меня есть решение, я опубликую код, как только это будет сделано, я уверен, что это поможет многим   -  person Ankur Mistry    schedule 24.09.2011
comment
@AnkurMistry.. у тебя есть успехи?? если ДА, пожалуйста, поделитесь им со мной.   -  person Noman    schedule 24.02.2014
comment
@AnkurMistry - есть ли успех??? пожалуйста, поделитесь своим кодом   -  person Balwinder SIngh    schedule 10.12.2014


Ответы (2)


Анкур,

Я думаю, что наиболее близким к тому, что вы ищете, является функция Device Administration, представленная в версии 2.2. .

После того, как приложение зарегистрировано в качестве администратора устройства, его нельзя удалить, если оно не зарегистрировано. Это предотвратит удаление приложения.

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

Я использую приложение под названием SeekDroid, которое имеет аналогичную функциональность.

person Will Tate    schedule 24.09.2011
comment
@WILLTATE: этот вклад - отличный старт !! Просто нужно немного больше информации 1> МОЕ ПРИЛОЖЕНИЕ СЕЙЧАС АДМИНИСТРАТОР УСТРОЙСТВА И НЕ МОЖЕТ БЫТЬ УДАЛЕН 2> КАК Я МОГУ ЗАПРОСИТЬ ПАРОЛЬ, КОГДА ПОЛЬЗОВАТЕЛЬ ОТКЛЮЧИЛ АДМИНИСТРИРОВАНИЕ УСТРОЙСТВА 3> МОГУ Я ВЫЗВАТЬ АКТИВНОСТЬ МОЕГО ПРИЛОЖЕНИЯ ДЛЯ ЭТОГО ?? - person rolling.stones; 16.06.2012
comment
@willtate: вы можете защитить функцию отмены регистрации в своем приложении паролем — нет, вы не можете. - person CommonsWare; 16.06.2012
comment
@CommonsWare Итак, я могу правильно исправить свой ответ. Вы хотите сказать, что невозможно обернуть какой-либо тип защиты паролем вокруг функции отмены регистрации в коде или это не следует делать с этической точки зрения? - person Will Tate; 17.06.2012
comment
@willtate: API-интерфейсы администратора устройства предоставляют вам возможность предоставить пояснительное сообщение, сообщая пользователю, почему им не следует отменять регистрацию администратора устройства. API-интерфейсы администратора устройства не предоставляют возможность заблокировать операцию отмены регистрации. - person CommonsWare; 17.06.2012
comment
Проблема с этим подходом заключается в том, что у пользователей по-прежнему будет возможность удалить приложение, отменив его регистрацию у администратора устройства. На данный момент я не думаю, что есть какое-либо решение, которое действительно предотвращает удаление приложений. - person Jaime Botero; 20.07.2012
comment
@JaimeBotero, если у пользователя нет возможности удалить приложение, вы, вероятно, делаете что-то неэтичное! Мне интересно, однако, если это включение / отключение находится за экраном пароля, может ли пользователь отменить регистрацию из-за пределов приложения? Кто-нибудь знает? - person ingh.am; 14.09.2012
comment
Можно ли использовать API администратора устройства, чтобы запретить пользователю принудительно останавливать приложение? - person gonzobrains; 11.06.2013
comment
Оказывается, это работает в 4.4. Во время удаления Android говорит, что не может удалить, потому что он является администратором устройства, но затем представляет кнопку для управления администраторами устройства, позволяющую легко отменить его выбор в качестве администратора устройства и, следовательно, разрешить удаление. Не нашел способа предотвратить это. - person David; 13.02.2014
comment
В Google Play есть приложение под названием Applock, которое, кажется, устанавливает другое приложение для администрирования устройства, которое работает в тандеме с основным приложением, чтобы отображать экран пароля, когда вы пытаетесь отменить регистрацию приложения в качестве администратора устройства. Хотя не уверен, как они это делают. Возможно, просто наблюдая за запуском активности и уничтожением приложения диспетчера устройств, если пароль не введен ?? - person Chris.D; 18.09.2014
comment
Что касается этического вопроса, это часто является требованием для корпоративных установок программного обеспечения соответствия (например), когда пользователь не владеет телефоном или использует BYOD. Существуют и другие способы, специфичные для производителей (например, Samsung), где они позволяют вам подписывать как системное приложение, если вы являетесь партнером-разработчиком. - person Chris.D; 18.09.2014

Я видел только одно приложение, которое делает это, оно называется Prey и используется для отслеживания потерянных телефонов и компьютеров. Проект с открытым исходным кодом, поэтому вы можете просмотреть их код и посмотреть, как они это делают, или связаться с разработчиком и может быть, они расскажут вам, как они это делают.

person slayton    schedule 24.09.2011
comment
Я просмотрел их код, и они делают именно то, что объясняет ответ Уильяма Тейта! - person ingh.am; 14.09.2012
comment
Я тоже видел, как Prey делал это. Я не думаю, что это неэтично, если вы позволите пользователю управлять этой функцией с помощью пароля. Таким образом, неавторизованные лица, получившие доступ к устройству, не смогут удалить конфиденциальные приложения. - person gonzobrains; 11.06.2013
comment
Prey по-прежнему можно отменить регистрацию через системные настройки-›безопасность-диспетчеры устройств. - person Chris.D; 18.09.2014