Autore Topic: Reperire, leggere ed eventualmente eliminare un file  (Letto 1065 volte)

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Reperire, leggere ed eventualmente eliminare un file
« il: 21 Settembre 2012, 20:09:32 CEST »
0
Ciao a tutti, ho appena iniziato a programmare su android e mi è stato affidato il seguente compito:
La mia applicazione dovrebbe, andare a reperire ogni manifest.xml delle applicazioni installate sul dispositivo, per ognuno di essi fare un parsing per andare a fare uno string matching tra una stringa mia e <activity android:label.... e android:name=...!
Se individuo la stringa cercata devo andare ad eliminare l'applicazione proprietaria di quel manifest.
Allora per navigare dentro il file system  e reperire i manifest penso posso usare package manager, per parsare posso usare il tutorial fatto da voi oppurehttp://developer.android.com/reference/android/content/res/XmlResourceParser.html? Per disinstallare l'applicazione dal sistema non ho idea.
Comunque l'obiettivo finale deve essere quello di andare ad individuare l'applicazione che abbia quel determinato nome e disinstallarla..

Ho le idee troppo confuse  :-\ :-(, ma spero di essere stato chiaro...
Grazie in anticipo!

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Reperire, leggere ed eventualmente eliminare un file
« Risposta #1 il: 24 Settembre 2012, 16:42:21 CEST »
0
Scusate almeno mi dite cosa non funziona nella parte dove ho usato Package manager?
Non mi stampa niente e sono sicuro che il package cercato c'è!

Codice (Java): [Seleziona]
 

static final int CUSTOM_DIALOG = 0;
        private static final int PROGRESS_DIALOG = 0;
        public static final int GET_CONFIGURATIONS=0;

    Button button;
    AlertDialog alertDialog;
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_myantivirusdroid);
       
        PackageInfo pInfo = null;
        TextView tv = (TextView)findViewById(R.id.textView2);
        String str=null;
       
        try{
           pInfo =  (PackageInfo) getPackageManager().getPackageInfo("MoviePlayer",GET_CONFIGURATIONS);
            str=pInfo.toString();
            tv.append(str);
        }
       
                catch (NameNotFoundException e) {
                pInfo = null;
            }
     



« Ultima modifica: 24 Settembre 2012, 16:52:25 CEST da lars87 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Reperire, leggere ed eventualmente eliminare un file
« Risposta #2 il: 24 Settembre 2012, 17:05:59 CEST »
0
Scusate almeno mi dite cosa non funziona nella parte dove ho usato Package manager?
Non mi stampa niente e sono sicuro che il package cercato c'è!

Sei sicuro che il package si chiami esattamente in quel modo?

Perchè secondo la documentazione ufficiale ( PackageManager | Android Developers ) :

Citazione
packageName    The full name (i.e. com.google.apps.contacts) of the desired package.


Per quanto riguarda la disinstallazione, a meno di non dare all'app privilegi particolari su un device rootato, dubito fortemente che un'app abbia il permesso di disinstallarne un'altra senza che l'utente acconsenta in qualche modo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Reperire, leggere ed eventualmente eliminare un file
« Risposta #3 il: 24 Settembre 2012, 20:05:21 CEST »
0
Ma per nome del package posso mettere direttamente il nome dell'applicazione che cerco o quello del suo file di installazione?
Per quanto riguarda la disinstallazione, si chiederò conferma all'utente, ma non so quali librerie usare...

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Reperire, leggere ed eventualmente eliminare un file
« Risposta #4 il: 24 Settembre 2012, 20:31:14 CEST »
0
Ma per nome del package posso mettere direttamente il nome dell'applicazione che cerco o quello del suo file di installazione?

La documentazione parla chiara: ci vuole il package name completo.

packageName    The full name (i.e. com.google.apps.contacts) of the desired package.


Per quanto riguarda la disinstallazione, si chiederò conferma all'utente, ma non so quali librerie usare...

C'è l'Intent per richiedere l'UNINSTALL di un package, ma è presente solo dalle API14 (IceCream) in poi.

Intent | Android Developers
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Reperire, leggere ed eventualmente eliminare un file
« Risposta #5 il: 24 Settembre 2012, 21:25:37 CEST »
0
Ok grazie, domani provo ed eventualmente chiudo! :D

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Reperire, leggere ed eventualmente eliminare un file
« Risposta #6 il: 26 Settembre 2012, 21:31:30 CEST »
0
A reperire l'applicazione che cercavo e a prendere tutte le info che mi servivano ci sono riuscito con getPackageManager().getPackageInfo().
Ma per disinstallare l'applicazione con gli intent non ho idea...