Ich versuche, die verfügbaren Startbildschirm Widgets Liste auf Android zu lesen. ich ein Raster mit Hilfe der verfügbaren Anwendungen Liste bevölkern könnenWie erhalte ich die installierte Widgetliste?
Intent myIntent = new Intent(Intent.ACTION_MAIN, null);
myIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appsInfo = MyActivity.getPackageManager().queryIntentActivities(myIntent, 0);
und als Iterieren durch jede ResolveInfo verwenden.
Wie kann ich das gleiche mit verfügbaren Startbildschirm Widgets tun? Ich möchte ein Raster mit der gleichen Liste füllen, die angezeigt wird, berühren Sie den Bildschirm und wählen Sie "Widget" aus dem erscheinenden Popup.
Vielen Dank! Das mach es! – lorenzoff
Das wird manchmal android.os.TransactionTooLargeException werfen. Ich kann nicht herausfinden, warum ... –
@Bobbobbington: Das würde passieren, wenn es viele 'AppWidgetProviders' auf dem Gerät gibt. Es gibt eine Begrenzung von 1 MB für alle gleichzeitigen IPC-Operationen von Ihrem Prozess. Wenn das Ergebnis von 'getInstalledProviders()' über 1 MB liegt, erhalten Sie diese Ausnahme. Selbst wenn die 'getInstalledProviders()' -Liste kleiner ist, wenn Sie sie aufrufen, während ein anderer IPC in Ihrem Prozess läuft (und einen Teil des 1MB-Limits verbraucht), erhalten Sie diese Ausnahme. – CommonsWare