Comment détecter qu’une application est désinstallable ?
Question
Je vais désinstaller une application lorsque l'utilisateur clique sur un bouton.avec ce code :
Uri packageURI = Uri.parse("package:"
+ pkNames[position]);
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);
mais certaines applications ne sont pas désinstallables.comme Paramètres ou Musique ou ...quand je vais désinstaller ces applications je vois :la désinstallation n'a pas réussi.
Je récupère mes colis avec ce code :
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
packages = pm.queryIntentActivities(mainIntent, 0);
Comment puis-je détecter qu’une application est désinstallable ou non ?
La solution
Vous devez vérifier si l'application que vous essayez de désinstaller est "système" en examinant ApplicationInfo.flags
.L'application système a ApplicationInfo.FLAG_SYSTEM
jeu de bits.Voici un petit bout de code :
boolean isSystem(ApplicationInfo info) {
return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
Vérifier documentation pour la classe ApplicationInfo pour d'autres drapeaux utiles.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow