2012-05-22 137 views
4

我想通過以下意圖編程啓動主屏幕/啓動器選擇對話框「默認情況下,這個動作使用」:Android主屏幕/啓動選擇器不顯示選項

Intent i = new Intent(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
i.addCategory(Intent.CATEGORY_DEFAULT); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

startActivity(Intent.createChooser(i, "Set My HomeScreen as default")); 

但不幸的是,與已安裝的主屏幕發射器列表一起出現的對話框沒有默認情況下在該對話框的底部使用此動作選項。下圖顯示了它的外觀:

HomeScreen

從上面的選擇對話框中選擇我的主屏幕後,有趣的是,如果我按從我該屏幕的主頁按鈕,然後Android的自動顯示一個類似的對話框,其實具有默認情況下,此對話框底部的此選項使用。下面是它的外觀:

HomeScreen chooser

我很無能了什麼問題與上面的代碼,它必須有一些愚蠢的錯誤,我不能夠發現自己。

如果有人可以擺脫一些光線,那麼這將是非常有幫助的。

感謝

回答

3

createChooser()不會產生一個「默認此操作」複選框。如果您想複選框,而是傳遞一個意圖startActivityForResult()

+0

非常感謝你,你的建議的工作! – Arnab

+3

在ICS上不起作用 –

1

這是你如何做到這一點的ICS:

final PackageManager packageManager = this.getPackageManager(); 
ComponentName componentName = new ComponentName(this, MainActivity.class); 
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 

Intent selector = new Intent(Intent.ACTION_MAIN); 
selector.addCategory(Intent.CATEGORY_HOME); 
startActivity(selector);