안드로이드 개발 질문/답변
(글 수 45,052)
Activity를 실행할때 위젯을 하나 띄울려고 합니다.
그래서 위젯 실행 방법을 보니..
private Intent subIntent;
private RelativeLayout main;
private AppWidgetHost mHost;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
... 중략....
main = (RelativeLayout)findViewById(R.id.layoutBody);
mHost = new AppWidgetHost(this, 0);
Intent i = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
int wid = mHost.allocateAppWidgetId();
i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, wid);
ArrayList<AppWidgetProviderInfo> infos = new ArrayList<AppWidgetProviderInfo>();
i.putExtra(AppWidgetManager.EXTRA_CUSTOM_INFO, infos);
startActivityForResult(i, 0); //--->onActiviyResult() 자동 호출;
...중략...
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK) {
int widgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
Log.i("TAG_Result","WidgetID:"+widgetId);
AppWidgetProviderInfo info = AppWidgetManager.getInstance(this).getAppWidgetInfo(widgetId);
addAppWidget(widgetId, info);
}
}
private void addAppWidget(int id, AppWidgetProviderInfo info) {
AppWidgetHostView hv = mHost.createView(this, id, info);
main.addView(hv);
}
이렇게 하던데요... 문제는 저 ACTION_APPWIDGET_PICK을 하면... Choose widget 다이얼로그가 떠서
내가 실행 위젯을 선택해야 한다는 문제가 있습니다.
이 과정을 생략하고 바로 내가 만든 위젯을 실행 하고 싶은데요... 무슨 방법이 없는지요??
그래서 위젯 실행 방법을 보니..
private Intent subIntent;
private RelativeLayout main;
private AppWidgetHost mHost;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
... 중략....
main = (RelativeLayout)findViewById(R.id.layoutBody);
mHost = new AppWidgetHost(this, 0);
Intent i = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
int wid = mHost.allocateAppWidgetId();
i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, wid);
ArrayList<AppWidgetProviderInfo> infos = new ArrayList<AppWidgetProviderInfo>();
i.putExtra(AppWidgetManager.EXTRA_CUSTOM_INFO, infos);
startActivityForResult(i, 0); //--->onActiviyResult() 자동 호출;
...중략...
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK) {
int widgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
Log.i("TAG_Result","WidgetID:"+widgetId);
AppWidgetProviderInfo info = AppWidgetManager.getInstance(this).getAppWidgetInfo(widgetId);
addAppWidget(widgetId, info);
}
}
private void addAppWidget(int id, AppWidgetProviderInfo info) {
AppWidgetHostView hv = mHost.createView(this, id, info);
main.addView(hv);
}
이렇게 하던데요... 문제는 저 ACTION_APPWIDGET_PICK을 하면... Choose widget 다이얼로그가 떠서
내가 실행 위젯을 선택해야 한다는 문제가 있습니다.
이 과정을 생략하고 바로 내가 만든 위젯을 실행 하고 싶은데요... 무슨 방법이 없는지요??