2016-07-19 203 views
7

Ho trovato che 360 security app dopo la disinstallazione apre la loro pagina nel browser. Possono farlo su tutte le versioni di Android (4, 5 e 6) e non capisco come. Forse qualcuno ha qualche idea? Conosco le stesse domande here e here e altre ma non hanno ancora risposte.Come alcune app tengono traccia della propria disinstallazione su Android

Non è un bug con framework inotify perché funziona solo su Android 4 °. non ci sono altri processi che ascoltano lo stesso bug in modo nuovo, ho controllato. Avevano qualche magia nella loro lib "eternity.so"

+2

Possibile duplicato di [Il codice può essere chiamato quando la mia applicazione Android viene disinstallata?] (http://stackoverflow.com/questions/5132472/can-code-be-called-when-my-android-application-is-uninstalled) –

+0

@AdamArold ma la domanda collegata non risponde a questa. La risposta accettata dice semplicemente "No, non è possibile nella stessa app", ma non ci sono spiegazioni sul perché alcune app possano farlo. – Bobby

+0

Pensa a questo: hai un server che ascolta la comunicazione costante dalle tue installazioni. Dopo un certo periodo di tempo, dovresti essere in grado di contrassegnare un'installazione come non valida se non è stata riscontrata alcuna risposta. Ciò non aiuta però ad aprire un browser in fase di disinstallazione, ma aiuta a tenere traccia degli utenti attivi –

risposta

1

L'applicazione può specificare una BroadcastReceiver con l'azione:

"android.intent.action.PACKAGE_REMOVED" 

Si chiamerà ogni volta che un pacchetto viene rimosso, anche se è l'applicazione del proprio pacchetto. Quindi, nel Receiver, l'app può controllare quale pacchetto è stato rimosso e reagire di conseguenza.

Si prega di notare che versioni diverse del sistema possono trattare questo in modo diverso, fornendo allo Receiver una quantità variabile di tempo prima che il processo dell'app venga arrestato. L'azione eseguita dovrebbe quindi essere veloce e mirata a un target esterno, come l'invio di un intento di ACTION_VIEW all'interno di quello che hai citato :-)

+0

No! Non è vero, la tua app non riceve questo intento) vedi [questo link] (https://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_REMOVED) –

+0

Hmmmm, sono abbastanza sicuro che l'ho fatto una volta usando questo metodo ... Fammi fare un controllo – Kelevandos

+0

Hai ragione, non sembra funzionare. Devono quindi usare qualche hack, come un callback non documentato che viene invocato in caso di disinstallazione o un'altra app che ascolta la disinstallazione della app principale ... Se posso suggerire qualcosa - spacchettare i loro .apk e controllare il codice. Anche se è offuscato, dovresti essere in grado di vedere le costanti String, che potrebbero darti l'idea di come ottengono questo comportamento :-) – Kelevandos