Android Intent.ACTION_获取_内容(仅使用ResolveInfo中的特定应用程序)
这里遇到了一个小问题,用户可以选择从图库中选择照片。在某些手机上,有更多的应用程序声称可以处理用户的意图,用户可以将其作为一种选择。。。是否有一种方法可以以标准方式将其过滤到标准版照片库中 p.查询中的第一项始终是画廊吗 下面是我们为获取应用程序列表所做的工作Android Intent.ACTION_获取_内容(仅使用ResolveInfo中的特定应用程序),android,android-intent,Android,Android Intent,这里遇到了一个小问题,用户可以选择从图库中选择照片。在某些手机上,有更多的应用程序声称可以处理用户的意图,用户可以将其作为一种选择。。。是否有一种方法可以以标准方式将其过滤到标准版照片库中 p.查询中的第一项始终是画廊吗 下面是我们为获取应用程序列表所做的工作 Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.setType("image/*"); i.putExtra("return-data", true); PackageManager
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("image/*");
i.putExtra("return-data", true);
PackageManager p = new PackagerManager();
List<ResolveInfo> list = p.queryIntentActivities(i, 0);
Intent i=新的意图(Intent.ACTION\u GET\u CONTENT);
i、 setType(“image/*”);
i、 putExtra(“返回数据”,真);
PackageManager p=新的PackageManager();
列表=p.querytentActivities(i,0);
所以如果我们只得到一条信息。。。伟大的但是如果列表中有多个项目。。。通过packageName进行过滤似乎有点黑客,因为我们不知道packageName将是什么。。。外面有太多不同的手机了
有什么建议吗
在某些手机上,有更多的应用程序声称可以处理用户的意图,用户可以将其作为一种选择。。。是否有一种方法可以以标准方式将其过滤到标准版照片库中
没有,因为没有“标准版照片库”
p.查询中的第一项始终是画廊吗
没有
有什么建议吗
允许用户从他们选择的任何支持
image/*
MIME类型的ACTION\u GET\u CONTENT
的应用程序中选择图像。以下是使用ResolveInfo中特定应用程序的方法:
当您确切地知道要使用哪一个并且不想显示“使用完成操作”对话框时,这将非常有用
Intent intent= new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
mApps = context.getPackageManager().queryIntentActivities(intent, 0);
ResolveInfo info = mApps.get(position); // depends on which app you want to start
String packageName = info.activityInfo.packageName;
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setPackage(packageName); // this will direct the intent to your specific app
intent.setType("image/*");
intent.putExtra("crop", "true");
...
startActivityForResult(intent, PICK_IMAGE);
如果我们允许用户选择应用程序,onActivityResult捕获此对话框,结果代码为false。所以我想禁用此对话框并直接打开gallery。有什么想法吗?