2010-11-25 13 views
7

Estoy tratando de leer la lista de widgets de la pantalla de inicio disponible en Android. puedo rellenar una cuadrícula utilizando la lista de aplicaciones disponibles utilizando¿Cómo obtener la lista de widgets instalados?

Intent myIntent = new Intent(Intent.ACTION_MAIN, null); 
myIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
List<ResolveInfo> appsInfo = MyActivity.getPackageManager().queryIntentActivities(myIntent, 0); 

y que cada iteración a través de ResolveInfo.
¿Cómo puedo hacer lo mismo con los widgets de la pantalla de inicio disponibles? Me gustaría llenar una cuadrícula con la misma lista que aparece, sigue tocando la pantalla y seleccionando "widget" en la ventana emergente que aparece.

Respuesta

6

Llame getInstalledProviders() en un AppWidgetManager.

+0

Muchas gracias! Esto lo haces! – lorenzoff

+0

Esto lanzará en algún momento android.os.TransactionTooLargeException. No puedo entender por qué ... –

+1

@Bobbobbington: Eso sucedería si hay muchos 'AppWidgetProviders' en el dispositivo. Hay un límite de 1MB en todas las operaciones IPC simultáneas de su proceso, por lo que si el resultado de 'getInstalledProviders()' es más de 1MB, obtendrá esta excepción. Incluso si la lista 'getInstalledProviders()' es más pequeña, si por casualidad lo llama mientras está sucediendo algún otro IPC en su proceso (y consumiendo parte del límite de 1 MB), obtendrá esta excepción. – CommonsWare

9

Como sugiere CommonsWare, aquí está el código de trabajo para la lista de widgets

AppWidgetManager manager = AppWidgetManager.getInstance(this); 
List<AppWidgetProviderInfo> infoList = manager.getInstalledProviders(); 
for (AppWidgetProviderInfo info : infoList) { 
    Log.d(TAG, "Name: " + info.label); 
    Log.d(TAG, "Provider Name: " + info.provider); 
    Log.d(TAG, "Configure Name: " + info.configure); 
} 

Varios otros valores extracción se puede extraer, para más referencia ver AppWidgetProviderInfo

+0

¿Es posible obtener el ícono del widget asociado con esto? –

+0

@RandyFreak sí, podemos extraer ícono de este –

Cuestiones relacionadas