2009-08-03 6 views
24

Я хотел бы потребовать, чтобы пользователь вводил пароль, прежде чем разрешить удалить или удалить мое приложение. Как я могу реализовать эту функциональность?Требовать пароль для удаления/удаления приложения

+1

не могли бы вы дать более подробную информацию. ОС, языки и т. Д. –

+0

В андроиде, при установке приложения он должен задать имя пользователя и пароль. , а при удалении приложения пользователь должен ввести правильное имя пользователя и пароль. – arams

+17

Разве это не немного грубо? Будучи клиентом, если мне когда-либо приходилось вводить пароль для удаления части программного обеспечения, я бы очень рвался! Я бы избавил себя от беспокойства и не выполнил его. – Steg

ответ

1

Это сложная проблема. Я могу подумать, по крайней мере, о одном недобросовестном прецеденте.

например. Приложение «Украденное восстановление телефона» - вы хотите удержать ненужные колоды от удаления приложения.

В этом случае, я могу думать о двух разумных допущений, которые бы меня остановить реализацию, что вы ищете:

  • вор не знает вашего приложения, так что не будет пытаться удалить его.
  • вор знает о вашем приложении и отключает его, пока он не сможет достать его в ящик для железа *, чтобы переустановить ОС.

* Для непосвященных: iron box предотвратит устройство передачи или приема электромагнитных сигналов.

Конечно, этот ответ составляет You Ain't Going To Need It, хотя я подозреваю, что вы уже это продумали.

+2

Применением предприятия будет другое незловое использование – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

13

Вы можете сделать это:

  • В первый раз устанавливается приложение, установить отдельное приложение/пакет («наблюдател»).
  • Единственные классы «наблюдающий» содержит это BroadcastReceiver, который прослушивает ACTION_PACKAGE_REMOVED
  • Добавить BroadcastReceiver в приложение, что также прослушивает ACTION_PACKAGE_REMOVED
  • Когда намерение передается одному из ваших приемников, проверьте, если другой компонент все еще установлен. Если is is (пользователь просто удалил его), запросите пароль - если это не так, переустановите другой компонент. Если это правильно, удалите себя.
+9

и что именно предотвращает пользователя от первой деинсталляции этого наблюдателя? – kellogs

+6

Другой wathcer lol;) – nithinreddy

+1

Ваш ответ прост и умен. Не могли бы вы помочь мне с переустановкой? Как это можно реализовать? – keybee

4

Вы можете выполнить logcat и получить информацию о намерении начать работу. Вы увидите, что перед отображением операции удаления есть текст сообщения: Начальная деятельность: Intent {act = android.intent.action.DELETE dat = package: com.comodo.pimsecure cmp = com. android.packageinstaller/.UninstallerActivity} , тогда вы можете ввести активность, запрашивая пароль сейчас.

+1

Это один очень хороший вариант, который нужно сделать ... но может помочь с небольшим кодом или какой-то помощью, которая разрабатывает это ... MY Application - это администратор устройства, теперь я хочу показать страницу пароля моего приложения, прежде чем разрешить удаление. Мне НУЖНА ПОМОЧЬ, ЧТОБЫ ОПРЕДЕЛЯТЬ УНИВЕРСАЛЬНУЮ ДЕЯТЕЛЬНОСТЬ ПРИМЕНЕНИЕ –

+1

logcat -d -n 5 ActivityManager: I *: S и весь журнал о ActivityManager будет отображаться. то вы можете прочитать журнал, чтобы найти ключевое слово «android.intent.action.DELETE», если вы это нашли, затем выполните шаг 2: найдите имя своего пакета в той же записи журнала. Если вы найдете имя своего пакета, то это log означает, что у устройства появилось действие для удаления вашего приложения, и теперь вы можете активировать активность паролей. – Mikonos

1

Это возможно. вы можете сделать это с помощью DeviceAdminReceiver api. (я не знаю, как)

Смежные вопросы