2009-08-03 11 views
24

Desidero richiedere che un utente digiti una password prima di poter disinstallare/rimuovere la mia applicazione. Come posso implementare questa funzionalità?Richiedere una password per disinstallare/rimuovere l'applicazione

+1

potresti fornire ulteriori dettagli. Sistema operativo, lingue, ecc. –

+0

In Android, quando si installa un'applicazione, deve chiedere nome utente e password. e durante la disinstallazione dell'applicazione l'utente deve inserire il nome utente e la password corretti. – arams

+17

Non è un po 'duro? In qualità di cliente, se dovessi inserire una password per disinstallare un software, sarei molto scongiurato! Mi risparmierei il fastidio e non lo implementerei. – Steg

risposta

1

Questo è un problema difficile. Posso pensare ad almeno un caso d'uso non malvagio per questo.

ad es. App rubata per il recupero del telefono: desideri dissuadere i neer-do-wells dalla disinstallazione dell'app.

In questo caso, mi vengono in mente due ipotesi sensibili che mi si fermava attuare ciò che stai cercando:

  • il ladro non è a conoscenza della vostra applicazione, in modo da non cercherà di disinstallarlo.
  • il ladro è a conoscenza della tua app e lo spegne fino a quando non riesce a portarlo a una scatola di ferro * per reinstallare il sistema operativo.

* Per i profani: un iron box impedirà il dispositivo di invio o la ricezione di segnali elettromagnetici.

Ovviamente, questa risposta è pari a You Ain't Going To Need It, anche se sospetto che abbiate già pensato a ciò.

+2

Un'applicazione aziendale sarebbe un altro uso non malvagio – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

13

Si potrebbe fare questo da:

  • La prima volta che si installa la vostra applicazione, installare un'applicazione/pacchetto separato ("osservatore").
  • Le uniche classi di "osservatore" contiene è un BroadcastReceiver che ascolta per ACTION_PACKAGE_REMOVED
  • Aggiungi un BroadcastReceiver all'applicazione che ascolta anche per ACTION_PACKAGE_REMOVED
  • Quando un intento viene trasmesso a uno dei tuoi ricevitori, controllare se l'altra componente è ancora installato. Se non lo è (l'utente l'ha appena disinstallato), richiedi la password - se è sbagliata, reinstalla l'altro componente. Se è giusto, disinstallalo.
+9

e, cosa impedisce esattamente all'utente di disinstallare prima questo watcher? – kellogs

+6

Another wathcer lol;) – nithinreddy

+1

La tua risposta è semplice e fantastica. Potresti aiutarmi con la parte di reinstallazione? Come può essere implementato? – keybee

4

È possibile eseguire logcat e ottenere le informazioni sull'intento dell'attività iniziale. Prima che venga visualizzata l'attività di disinstallazione, è disponibile un messaggio di testo come: Attività di avvio: Intent {act = android.intent.action.DELETE dat = pacchetto: com.comodo.pimsecure cmp = com. android.packageinstaller/.UninstallerActivity} quindi è possibile inserire un'attività chiedendo la password ora.

+1

Questa è un'opzione molto buona da fare ... ma puoi aiutare con un piccolo codice o qualche tipo di aiuto che elabora questo ... La mia applicazione è l'amministratore del dispositivo, ora voglio mostrare una pagina di password della mia applicazione prima di consentire la cancellazione. HO BISOGNO DI AIUTO PER RILEVARE L'ATTIVITÀ DI DISINSTALLAZIONE DELL'APPLICAZIONE –

+1

logcat -d -n 5 ActivityManager: I *: S e tutto il registro relativo all'attivitàManager verrà visualizzato. quindi puoi leggere il log per trovare la parola chiave "android.intent.action.DELETE", se lo hai trovato, allora è il passaggio 2: trova il nome del tuo pacchetto nello stesso record di log, se trovi il nome del pacchetto, allora questo log significa che il dispositivo ha attivato un'attività per disinstallare l'app e ora è possibile eseguire un'attività con password. – Mikonos

1

È possibile. puoi farlo con DeviceAdminReceiver api. (Non so come)

Problemi correlati