2011-11-23 12 views
6

Quiero crear una lista de aplicaciones que se ve en la pantalla de inicio en Android.¿Cómo obtener los nombres de las aplicaciones que se ven en la pantalla de inicio en Android?

Actualmente estoy usando el siguiente código:

List<ApplicationInfo> packs = pm.getInstalledApplications(0); 

Pero esto devuelve todas las aplicaciones instaladas pero requieren sólo las aplicaciones que tienen los iconos en la pantalla principal.

¿Cómo se puede hacer esto?

Cualquier ayuda apreciada.

+1

¿Está pensando en alojar usuarios de Lanzadores no estándar? Tenga cuidado con Sense y TouchWiz, que vienen de serie en muchos teléfonos. – Emyr

+0

"Pantalla de inicio" no es un concepto estándar en Android. Como dijo @Emyr, muchas personas están usando diferentes reemplazos de iniciador, por lo que sus pantallas de inicio no son las mismas que las de "stock". Y cada iniciador tiene su propia forma de almacenar lo que se muestra en la pantalla de inicio. – Guillaume

Respuesta

0

Ahora que tienes la lista de paquetes instalados en el dispositivo, iterar a través de ellos y llamar getLaunchIntentForPackage() en cada artículo.

Si se devuelve un intento válido, existe en el lanzador, de lo contrario si se devuelve nulo, el paquete no se inicia desde la pantalla de lanzador. Tenga en cuenta que los accesos directos de la pantalla de inicio son un subconjunto de las aplicaciones del iniciador.

+0

Gracias. He hecho lo mismo. Pero da una excepción de sistema en algunos paquetes. ¿Cómo se puede resolver eso? – Sandeep

+1

El documento dice que devolverá Intenciones de devoluciones que se pueden usar para iniciar la actividad principal en. por lo general, todas las aplicaciones tienen 1 iniciador. así que no creo que esto funcione ... ¿Has probado esto alguna vez? –

+0

@Shail Devuelve la intención de 'CATEGORY_LAUNCHER'. Si alguna actividad cae bajo '' Serán visibles en el Iniciador. ' – Reno

Cuestiones relacionadas