【问题标题】:Is there a way to exclude certain apps from the chooser dialog?有没有办法从选择器对话框中排除某些应用程序?
【发布时间】:2014-01-03 14:04:40
【问题描述】:

我正在使用以下代码让用户从他们的设备中选择一张照片。这是非常标准的,将显示典型的选择器对话框,其中显示了可以处理此事件的可能应用程序列表。

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), Constants.PICK_PHOTO);

我想从该列表中排除 Picasa。有没有办法做到这一点?谢谢。

【问题讨论】:

  • 为什么要排除 Picasa
  • 基本上是因为 Picasa 处理图像 URI 的方式与普通图像选择器不同,我想知道现在是否有一个快速的 2 分钟修复方法,然后再实际实施此边缘情况的代码。跨度>
  • 如果有人安装了 Picasa,并且它显示在除您之外的所有应用程序中,用户会认为这是一个错误(除非您解释它,但他们为什么要关心 URI 格式?)。
  • 你基本上需要以不同的方式处理这个问题。这里解释了这个问题(这里也有一个解决方案,但我只是想知道这在 Android 中是可能的):dimitar.me/…

标签: android android-intent


【解决方案1】:

您可以使用PackageManager.queryIntentActivities 来确定哪些应用可以处理意图,然后创建自定义选择器对话框。有关如何执行此操作的更多详细信息,请参阅 Custom filtering of intent chooser based on installed Android package nameCustom ListView in a dialog

【讨论】:

    【解决方案2】:

    不,您不能从此列表中删除任何应用。您只能要求用户选择您的应用(例如在显示列表之前)。

    【讨论】:

      猜你喜欢
      • 2022-09-25
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      相关资源
      最近更新 更多