2011-07-12 71 views
3

編程方式我試圖在主屏幕上顯示小部件,但在通過&調用startActivity(pickIntent)傳遞小部件ID時遇到問題。小部件列表即將出現,但我開發的小部件沒有被選中。如何通過編程方式在主屏幕上顯示小部件

final int[] appWidgetIds = appWidgetManager.getAppWidgetIds(component); 
Intent intent = getIntent(); 
     Bundle extras = intent.getExtras(); 
     if (extras != null) { 
      mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, 
        AppWidgetManager.INVALID_APPWIDGET_ID); 
} 

我在這裏得到extras= null。所以,我想分配部件ID爲 WidgetId = mAppwidgetHost.allocateAppWidgetId();

通過發送意圖:

Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK); 
     pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, WidgetId); 
     startActivity(pickIntent); 

但是我的小部件沒有得到選擇。 任何人都可以請讓我知道如何在主屏幕上顯示小部件,而無需任何用戶交互。提前致謝。

回答

4

你不能這樣做:標準的部件選擇器不允許你指定一個特定的部件。

+0

你可以讓我知道有無論如何模擬從列表中選擇特定小部件的用戶交互? – schumi

+0

目前沒有辦法模擬用戶交互:我花了一個痛苦的一天尋找對這個問題的答案。這將是一個不錯的用戶界面改進(一個按鈕小部件安裝),但不幸的是當您發送Intent時啓動的活動(位於http://android.git.kernel.org/?p=platform/packages/apps/Settings .git; a = blob; f = src/com/android/settings/AppWidgetPickActivity.java; h = 176ac80c38553eab3d18c3f3197188f59ca0ada1; hb = 7be5137e12ba58cebae634f640379599acdb491a)沒有提供實際強制它選擇特定Widget的方法。 – Femi

+0

感謝您的回覆... – schumi

相關問題