デフォルトの検索アプリ ウィジェットをアプリ内のビューに追加したいと考えています。ホームスクリーンと同じですが、ドラッグする必要はありません。ワークスペースを 4x1 の大きさにしたいだけです。
これどうやってするの?ランチャーのソースを調べましたが、できるだけシンプルにしたいので、理解したり削除したりするのは大変です...
次のようにウィジェットのコンポーネント名を取得できることを知っています。
private ComponentName getSearchWidgetProvider() {
SearchManager searchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
ComponentName searchComponent = null;
searchManager.getSearchableInfo(searchComponent);
if (searchComponent == null) return null;
return getProviderInPackage(searchComponent.getPackageName());
}
private ComponentName getProviderInPackage(String packageName) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(mContext);
List<AppWidgetProviderInfo> providers = appWidgetManager.getInstalledProviders();
if (providers == null) return null;
final int providerCount = providers.size();
for (int i = 0; i < providerCount; i++) {
ComponentName provider = providers.get(i).provider;
if (provider != null && provider.getPackageName().equals(packageName)) {
return provider;
}
}
return null;
}
では、最も簡単な方法でビュー(LinearViewとしましょう)内に追加するにはどうすればよいですか...
ありがとう!