홈 위젯을 코드에서 강제로 띄울수 있는지 질문 드립니다.
해당 앱의 홈 위젯을 코드에서 바로 띄울수 있도록 하고 싶습니다..
구글링 해봐도 잘 안나오네요..
불가능한건가요?
가능합니다. AppWidgetHost 를 통해서 RomteView 를 얻어오면 되는데요..
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
List<AppWidgetProviderInfo> infoList = appWidgetManager.getInstalledProviders();
for (int i = 0; i < infoList.size(); i++) {
Log.i("####", infoList.get(i).provider.getClassName());
if (infoList.get(i).provider.getClassName().compareTo("com.example.android.apis.appwidget.ExampleAppWidgetProvider") == 0) {
AppWidgetHostView hostView = host.createView(this, host.allocateAppWidgetId(), infoList.get(i));
worksapce_Layout.addView(hostView);
}
답변 감사합니다.
그런데 이렇게 하게 될 경우 해당 앱 레이아웃에 뜨게 되는데요... 전 홈 런쳐에 직접 띄우고 싶습니다....
검색 해보니 다들 답변해주신 내용에서 벗어나질 않아서요^^;
로그인 유지
가능합니다. AppWidgetHost 를 통해서 RomteView 를 얻어오면 되는데요..
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
List<AppWidgetProviderInfo> infoList = appWidgetManager.getInstalledProviders();
for (int i = 0; i < infoList.size(); i++) {
Log.i("####", infoList.get(i).provider.getClassName());
if (infoList.get(i).provider.getClassName().compareTo("com.example.android.apis.appwidget.ExampleAppWidgetProvider") == 0) {
AppWidgetHostView hostView = host.createView(this, host.allocateAppWidgetId(), infoList.get(i));
worksapce_Layout.addView(hostView);
}
}