【问题标题】:Android home-screen/launcher chooser does not show 'use by default for this action' optionAndroid 主屏幕/启动器选择器不显示“默认使用此操作”选项
【发布时间】:2012-05-22 20:35:57
【问题描述】:

我正在尝试使用以下意图以编程方式启动主屏幕/启动器选择器对话框:

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 会自动显示一个类似的对话框,实际上该对话框具有 默认情况下用于此选项 在对话框的底部。这是它的外观:

我对上面的代码有什么问题一无所知,这一定是我无法发现自己​​的愚蠢错误。

如果有人能提供一些启示,那将有很大的帮助。

谢谢

【问题讨论】:

    标签: android homescreen


    【解决方案1】:

    createChooser() 不会生成“此操作的默认值”复选框。如果您想要该复选框,请将意图传递给 startActivityForResult()

    【讨论】:

    • startActivity 无法设置我自己的标题
    【解决方案2】:

    这就是你在 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);
    

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      相关资源
      最近更新 更多