J'essaye de lire la liste de widgets d'écran d'accueil disponible sur Android. Je peux remplir une grille en utilisant la liste des applications disponibles à l'aideComment obtenir la liste des widgets installés?
Intent myIntent = new Intent(Intent.ACTION_MAIN, null);
myIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appsInfo = MyActivity.getPackageManager().queryIntentActivities(myIntent, 0);
et que itérer chaque ResolveInfo.
Comment faire la même chose avec les widgets d'écran d'accueil disponibles? Je voudrais remplir une grille avec la même liste qui apparaît en continuant à toucher l'écran et en choisissant 'widget' dans le popup apparaissant.
Merci beaucoup! Ça fait ça! – lorenzoff
Cela lancera parfois android.os.TransactionTooLargeException. Je ne peux pas comprendre pourquoi ... –
@Bobbobbington: Cela se produirait s'il y avait beaucoup de «AppWidgetProviders» sur l'appareil. Il y a une limite de 1 Mo pour toutes les opérations IPC simultanées de votre processus, donc si le résultat de getInstalledProviders() est supérieur à 1 Mo, vous obtiendrez cette exception. Même si la liste 'getInstalledProviders()' est plus petite, s'il vous arrive de l'appeler alors qu'un autre IPC de votre processus est en cours (et qu'il consomme une partie de la limite de 1 Mo), vous obtiendrez cette exception. – CommonsWare