我遇到了一些問題,在我一直在處理的自定義啓動器中將小部件添加到主屏幕。自定義啓動器中的綁定小部件
我已經能夠通過AppWidgetManager生成一個要添加的小部件列表,並且我已經開發了將小部件添加到我的主屏幕的工作流程。該代碼是不太下面是什麼,但看起來像下面這樣:
AppWidgetHost widget_host = new AppWidgetHost(this, 1);
AppWidgetManager widget_manager = AppWidgetManager.getInstance(this);
int widget_id = widget_host.allocateAppWidgetId();
AppWidgetProviderInfo widget_provider = ... //from an array;
Intent bindIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_BIND);
bindIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widget_id);
bindIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_PROVIDER, widget_provider.provider);
startActivityForResult(bindIntent, REQUEST_BIND_APPWIDGET);
if (widget_provider.configure != null) {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
intent.setComponent(widget_provider.configure);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widget_id);
startActivityForResult(intent, REQUEST_CREATE_APPWIDGET);
} else {
createWidget(widget_id);
}
我再有,如果有必要,導致部件的構造的onActivityResult方法,以及createWidget方法使用AppWidgetHost的CreateView的方法。
此工作流程工作正常,但ACTION_APPWIDGET_BIND意圖詢問用戶綁定應用程序的權限,這有點煩人。我的理解是,只有系統應用程序可以請求此權限,並且在綁定窗口小部件時我沒有運氣,而無需在應用程序運行時請求此權限。另一方面,我知道那裏有很多其他的發射器,他們都可以無縫地添加小部件,所以必須有另一種方法。
任何意見將不勝感激!
乾杯
你有沒有找到解決你的問題? –