检查设备是否有应用程序从Gallery中选择“media / *”

时间:2011-11-24 14:02:10

标签: android android-gallery

我正在开发一个允许用户从图库中选择图像的应用程序,但我希望能够在可能的情况下选择图像或视频。

到目前为止,如果我改变:

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
 intent.setType("image/*");

为:

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
 intent.setType("media/*");

从图库中选择它的选项不可见,但其他程序显示(如ASTRO)

有没有办法以编程方式检测设备是否有其他程序来选择媒体/ *,所以我可以选择我要在Intent中设置的类型?

1 个答案:

答案 0 :(得分:1)

使用此意图调用PackageManager以了解哪些应用程序处理此内容类型。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("media/*");
final PackageManager packageManager = getPackageManager();
List<resolveinfo> list = packageManager.queryIntentActivities(intent, 0);

从那里,您可以检查列表大小,或者列表是否包含给定的包名称,并执行适当的操作。