Android — добавление AppWidgets в действие

Моя первоначальная цель — добавить виджет поиска Google в линейный макет активности. Мне нужно включить его так, как он выглядит и работает в Launcher (поэтому мне нужно иметь возможность добавлять виджет).


Я хотел бы добавлять виджеты в свою активность, не запуская действие средства выбора виджетов. Я пытался:

1. напрямую указать целочисленный идентификатор (я всегда получаю ошибки наполнения)

2. получить идентификатор следующим образом:

  ComponentName cn = new ComponentName(getBaseContext(), "com.android.quicksearchbox.SearchWidgetProvider");
  int[] ids = AppWidgetManager.getInstance(getApplicationContext()).getAppWidgetIds (cn);

(массив всегда пуст)

Ничего из этого не работает.

После этого у меня есть этот код для использования идентификатора (он работает, если я получаю идентификатор из действия средства выбора виджета):

    AppWidgetProviderInfo withWidgetInfo = AppWidgetManager.getInstance(getApplicationContext()).getAppWidgetInfo(appWidgetId);
    AppWidgetHostView hostView = myWidgetHost.createView(getBaseContext(), appWidgetId, withWidgetInfo);
    hostView.setAppWidget(appWidgetId, withWidgetInfo);
    LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
    ll.addView(hostView);

Как мне это сделать? Спасибо!

9
задан stormofwar 5 April 2012 в 20:44
поделиться