Estoy desarrollando una aplicación que tiene la capacidad de cambiar el icono que se muestra en el lanzador. Comparto el código que hace esto. Entiendo que este no es un foro para desarrolladores, por lo que se puede imaginar que hay varios iconos en la aplicación, pero sólo uno se muestra siempre en el lanzador.
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);
}
}
Quería escribir un comando que supiera qué icono está activo en ese momento. Esto se puede determinar simplemente tomando de algún lugar una lista de sólo activos activity-alias
es. Dado que el control en el código pasa por el PackageManager
Supongo que en el terminal esto es posible con el botón pm
utilidad. Pero no encontré nada que me ayudara. Según tengo entendido, de alguna manera a través de pm
Puedo obtener una lista de activity-alias
es, y luego para cada uno obtener las propiedades COMPONENT_ENABLED_STATE_ENABLED
o COMPONENT_ENABLED_STATE_DISABLED
que especifico en el código. Si encuentro la propiedad COMPONENT_ENABLED_STATE_ENABLED
entonces debería obtener el nombre de este activity-alias
.