在要求EXTRA_ALLOW_MULTIPLE时,Google相册会返回逆序照片

时间:2016-06-05 08:16:35

标签: android android-gallery google-photos

我要求图库应用中的图片:

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

我正在阅读这样的结果:

ClipData clipData = data.getClipData();
Uri[] uris = new Uri[clipData.getItemCount()];
for (int i = 0; i < uris.length; i++) {
  uris[i] = clipData.getItemAt(i).getUri();
}

我注意到,当我使用Google相册作为图库时,结果的反转顺序与我在Google相册中选择的结果相反。 UI。

这是故意的,一致的还是记录在哪里?

1 个答案:

答案 0 :(得分:1)

首先,ACTION_PICK是错误的Intent操作。如果您阅读the documentation for ACTION_PICK,那就是从特定集合中挑选内容; MIME类型不是记录的输入值之一。 ACTION_GET_CONTENT用于根据MIME类型选择内容。

其次,请注意EXTRA_ALLOW_MULTIPLE is for use with ACTION_GET_CONTENT and ACTION_OPEN_DOCUMENT。因此,很少ACTION_PICK个实现会尊重额外的。

第三,不要求Uri请求返回的EXTRA_ALLOW_MULTIPLE值按任何特定顺序排列。有数千种可能的应用程序会响应您的请求,他们可以按照他们希望的顺序向您发送结果。特别是,the documentation for EXTRA_ALLOW_MULTIPLE不涉及订单。

如果订单在您的应用中很重要,请构建您自己的用户界面以确认订单。提供方便的一键式&#34;反向&#34;选项,除了可能拖放以允许任意更改。毕竟,在内容选择期间,用户可能没有意识到该顺序很重要,因此即使用户选择内容的顺序也不是用户的实际期望顺序。