Come può rilevare un'applicazione è disinstallabile?
Domanda
Devo disinstallare un'applicazione quando l'utente fai clic su un pulsante.Con questo codice:
Uri packageURI = Uri.parse("package:"
+ pkNames[position]);
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);
.
Ma qualche applicazione non è disinstallabile.Come impostazione o musica o ... Quando ho intenzione di disinstallare queste applicazioni, vedo: Disinstalla non riuscita.
ottengo i miei pacchetti con questo codice:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
packages = pm.queryIntentActivities(mainIntent, 0);
.
Come posso rilevare un'applicazione è disinstallabile o no?
Soluzione
Dovresti verificare se l'applicazione che stai tentando di disinstallare è "System" esaminando ApplicationInfo.flags
.L'applicazione di sistema ha un set di bit ApplicationInfo.FLAG_SYSTEM
.
Ecco un piccolo pezzo di codice:
boolean isSystem(ApplicationInfo info) {
return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
.
Check Documentazione per applicationinFO Class per altre flag utili.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow