2009-08-03 13 views
24

Me gustaría solicitar que un usuario escriba una contraseña antes de poder desinstalar o eliminar mi aplicación. ¿Cómo puedo implementar esta funcionalidad?Solicitar una contraseña para desinstalar/eliminar la aplicación

+1

podría dar más detalles. Sistema operativo, idiomas, etc. –

+0

En android, al instalar una aplicación, debe solicitar el nombre de usuario y la contraseña. y al desinstalar el usuario de la aplicación debe ingresar el nombre de usuario y la contraseña correctos. – arams

+17

¿No es eso un poco duro? Como cliente, si alguna vez tuviera que ingresar una contraseña para desinstalar un software, ¡me sentiría muy mal! Me ahorraría la molestia y no lo implementaría. – Steg

Respuesta

1

Este es un problema difícil. Puedo pensar en al menos un caso de uso no maléfico para ello.

p. Ej. Aplicación de Recuperación de teléfono robada: desea evitar que los nuevos usuarios desinstalen la aplicación.

En este caso, se me ocurre dos supuestos sensibles que me impediría la aplicación de lo que estás buscando:

  • el ladrón no es consciente de su aplicación, por lo que no va a tratar de desinstalarlo.
  • el ladrón es consciente de su aplicación, y apáguela hasta que pueda acceder a una caja de hierro * para volver a instalar el sistema operativo.

* Para los no iniciados: un iron box evitará que el dispositivo de envío o recepción de señales electromagnéticas.

Por supuesto, esta respuesta asciende a You Ain't Going To Need It, aunque sospecho que ya ha pensado en esto.

+2

Una aplicación empresarial sería otro uso no dañino – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

13

Usted puede hacer esto por:

  • La primera vez que se instala la aplicación, instalar una aplicación/paquete separado ("vigilante").
  • Las únicas clases "vigilante" contiene es una BroadcastReceiver que escucha ACTION_PACKAGE_REMOVED
  • Añadir un BroadcastReceiver a su aplicación, que también recibe las ACTION_PACKAGE_REMOVED
  • Cuando una intención se transmite a uno de sus receptores, comprobar si el otro componente todavía está instalado. Si no lo está (el usuario simplemente lo desinstaló), solicite la contraseña; si es incorrecta, reinstale el otro componente. Si es correcto, desinstálate.
+9

y, ¿qué impide exactamente que el usuario desinstale por primera vez este monitor? – kellogs

+6

Another wathcer lol;) – nithinreddy

+1

Su respuesta es simple e impresionante. ¿Me podrían ayudar con la parte de reinstalación? ¿Cómo se puede implementar? – keybee

4

Puede ejecutar logcat y obtener la información de inicio de la actividad. Usted encontrará que antes de mostrar la actividad de desinstalación, hay un msg de texto como: la actividad de inicio: Intención {actuar = android.intent.action.DELETE dat = paquete: com.comodo.pimsecure cmp = com. android.packageinstaller/.UninstallerActivity} luego puede abrir una actividad solicite la contraseña ahora.

+1

Esa es una muy buena opción para hacer ... pero puede ayudar con un pequeño código o algún tipo de ayuda que elabora esto ... MI Aplicación es el administrador del dispositivo, ahora quiero mostrar una página de contraseña de mi aplicación antes de permitir la eliminación. NECESITO AYUDA PARA DETECTAR LA ACTIVIDAD DESINSTALAR LA APLICACIÓN –

+1

logcat -d -n 5 ActivityManager: I *: S y se mostrará todo el registro sobre activityManager. luego puede leer el registro para encontrar la palabra clave "android.intent.action.DELETE", si lo encontró, entonces es el paso 2: encuentre el nombre de su paquete en el mismo registro. Si encuentra el nombre de su paquete, entonces este log significa que el dispositivo tiene una actividad pop para desinstalar su aplicación, y ahora puede mostrar una actividad de contraseña. – Mikonos

1

Es posible. puedes hacerlo con DeviceAdminReceiver api. (No sé de ninguna manera)

Cuestiones relacionadas