我正在开发一个允许用户从图库中选择图像的应用程序,但我希望能够在可能的情况下选择图像或视频。
到目前为止,如果我改变:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
为:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("media/*");
从图库中选择它的选项不可见,但其他程序显示(如ASTRO)
有没有办法以编程方式检测设备是否有其他程序来选择媒体/ *,所以我可以选择我要在Intent中设置的类型?
答案 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);
从那里,您可以检查列表大小,或者列表是否包含给定的包名称,并执行适当的操作。