Android 有没有办法从选择器对话框中排除某些应用?

Android 有没有办法从选择器对话框中排除某些应用?,android,android-intent,Android,Android Intent,我使用下面的代码让用户从他们的设备中选择一张照片。这是相当标准的,将显示典型的选择器对话框,其中显示可以处理此事件的可能应用程序的列表 Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), Constants

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

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的方式与普通图像选择器不同,我想知道是否有快速,在实际执行此edge案例的代码之前,现在需要2分钟的修复。如果有人安装了Picasa,并且它在除您之外的每个应用程序中都出现,用户会认为这是一个bug(除非您对此进行解释,但他们为什么要关心URI格式?)。您基本上需要以不同的方式处理此问题。这里解释了这个问题(这里也有一个解决方案,但我只是想知道这在Android中是可能的):