2012-05-22 43 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);