Je développe une application qui permet de changer l'icône affichée dans le lanceur. Je partage le code qui permet de le faire. Je comprends que ce n'est pas un forum pour les développeurs, donc vous pouvez imaginer qu'il y a plusieurs icônes dans l'application, mais qu'une seule est toujours affichée dans le lanceur.
public static void setIcon(LauncherIcon icon) {
Context ctx = ApplicationLoader.applicationContext;
PackageManager pm = ctx.getPackageManager();
for (LauncherIcon i : LauncherIcon.values()) {
pm.setComponentEnabledSetting(i.getComponentName(ctx), i == icon ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
}
Je voulais écrire une commande qui permettrait de savoir quelle icône est actuellement active. Cela peut être déterminé en prenant quelque part une liste des seules icônes actives. activity-alias
es. Étant donné que le contrôle dans le code s'effectue par l'intermédiaire du PackageManager
Je suppose qu'il est possible de le faire dans le terminal à l'aide de la commande pm
utilitaire. Mais je n'ai rien trouvé pour m'aider. Si j'ai bien compris, d'une manière ou d'une autre, par le biais de pm
Je peux obtenir une liste de activity-alias
puis, pour chacun d'entre eux, d'obtenir les propriétés COMPONENT_ENABLED_STATE_ENABLED
o COMPONENT_ENABLED_STATE_DISABLED
que je spécifie dans le code. Si je trouve la propriété COMPONENT_ENABLED_STATE_ENABLED
alors je devrais obtenir le nom de ce activity-alias
.