Моя первоначальная цель — добавить виджет поиска 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);
Как мне это сделать? Спасибо!