Autore Topic: Disinstallazione silenziosa di un pacchetto  (Letto 739 volte)

Offline Danilo25

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Play Store ID:
    Danilo25
  • Sistema operativo:
    Ubuntu 12.10
Disinstallazione silenziosa di un pacchetto
« il: 12 Dicembre 2012, 18:27:31 CET »
0
Ciao a tutti, sono un nuovo frequentatore del Forum!

Sto cercando di creare un'applicazione che crea una lista delle applicazioni e, una volta selezionata, faccia partire la disinstallazione del programma.
Al momento, per disinstallare, sto usando questo codice:

Codice (Java): [Seleziona]
Intent intent = new Intent(Intent.ACTION_DELETE, Uri.fromParts("package", packageName1, null));
startActivity(intent);

Il problema è che, così facendo, mostra la schermata di disinstallazione presente in Android.

Vorrei fare in modo che, una volta selezionata l'applicazione, faccia partire la disinstallazione 'di nascosto', cioè senza nessuna finestra (eccetto una di dialogo per la conferma, che ho già preparato).

Come posso fare? Grazie per l'aiuto!  ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Disinstallazione silenziosa di un pacchetto
« Risposta #1 il: 12 Dicembre 2012, 18:38:23 CET »
0
Dubito fortemente si possa fare...

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Disinstallazione silenziosa di un pacchetto
« Risposta #2 il: 12 Dicembre 2012, 22:16:01 CET »
0
Per poterlo fare hai bisogno di installare l'app come app di sistema: solo in questo modo puoi usare il permesso adatto per installare/disinstallare in modo silente un'app terze parti (oltre a dover usare le reflection per usare le classi che servono). Senza root non si può fare (almeno, a quanto ho avuto modo di sperimentare io :-) )

Offline Danilo25

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Play Store ID:
    Danilo25
  • Sistema operativo:
    Ubuntu 12.10
Re:Disinstallazione silenziosa di un pacchetto
« Risposta #3 il: 14 Dicembre 2012, 11:17:53 CET »
0
Ho provato con le funzioni di Root:
Codice (Bash): [Seleziona]
rm [posizione_apk]
Ho provato ad usarlo (al posto di posizione_apk ho messo packageName1, in modo da risalire alla posizione del pacchetto) e in effetti così funziona.

Per il momento ho 'risolto' eseguendo un controllo (se è Root, cancella con la funzione sopra, altrimenti disinstalla normalmente).

Se conoscete un'altra soluzione, sono ben felice di provare  :-)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Disinstallazione silenziosa di un pacchetto
« Risposta #4 il: 14 Dicembre 2012, 13:57:20 CET »
0
Rimuovere solo il file *.apk non è una vera disinstallazione, rimangono tutti i dati ancora in /data/data/package e le informazioni sul pacchetto nei file /data/system/packages.*.

Se sei root puoi provare a lanciare il comando "pm uninstall package", non sono sicuro se funziona dall'applicativo, via shell di adb funziona, non puoi comunque disinstallare le app di sistema.
« Ultima modifica: 14 Dicembre 2012, 14:01:46 CET da iceweasel »
adb logcat | tee /tmp/logcat | grep TAG