我正尝试使用以下意图以编程方式启动Home-screen / Launcher选择器对话框:
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"));
但遗憾的是,与安装的主屏幕启动器列表一起显示的对话框在对话框底部没有 默认使用此操作 选项。下图显示了它的外观:
有趣的是,在从上面的选择器对话框中选择我的主屏幕后,如果我从该屏幕按下主页按钮,则Android会自动显示类似的对话框,实际上该选项 默认使用此选项 位于对话框的底部。以下是它的外观:
我对上述代码的错误一无所知,这一定是一些我无法发现自己的愚蠢错误。
如果任何人能够发光,那将会有很大的帮助。
由于
答案 0 :(得分:3)
createChooser()
不会生成“此操作的默认设置”复选框。如果您想要复选框,请将意图传递给startActivityForResult()
答案 1 :(得分: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);