1 votos

¿Es posible obtener el nombre de la actividad-alias activa?

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 .

0voto

diskriminant Puntos 11

Por ejemplo, si su aplicación tiene el paquete com.company.Calc y tiene dos activity-alias : com.company.MainActivity1 (por defecto) y com.company.MainActivity2 puede obtener activos actuales activity-alias así:

dumpsys package com.company.Calc | grep -A1 "enabledComponents" | grep "com.company" | grep -o '[^$(printf '\t') ].*' || echo "com.company.MainActivity1"

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X