Как получить список установленных виджетов? - PullRequest
7 голосов
/ 25 ноября 2010

Я пытаюсь прочитать список доступных виджетов домашнего экрана на Android.Я могу заполнить сетку, используя список доступных приложений, используя

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

, и затем повторяя все ResolveInfo.
Как я могу сделать то же самое с доступными виджетами Начального экрана?Я хотел бы заполнить сетку тем же списком, который появляется, продолжая касаться экрана и выбирая «виджет» из появившегося всплывающего окна.

Ответы [ 2 ]

12 голосов
/ 11 июля 2013

Как предлагает CommonsWare, вот рабочий код для извлечения списка виджетов

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);
}

Могут быть извлечены различные другие значения, для получения дополнительной информации см. AppWidgetProviderInfo

8 голосов
/ 25 ноября 2010

Звоните getInstalledProviders() на AppWidgetManager.

...