如何创建 Intent 以打开多张照片而无需首先导航到 "Photos"

How to create an Intent to open multiple photos without having to first navigate to "Photos"

所以我正在尝试从照片库中获取多张图片的 Uris。它工作正常,但是当 Intent 启动时,它指向 "Open from" window,然后我必须单击左下角的 "Photos"。然后我有机会击中 "Pictures" 并制造我的 select 离子。

如果用户不必提前知道执行这一系列步骤,那就更好了。如果有一个 Intent 允许他们立即 select 他们的图像,我会很高兴。

我已经深入研究了 Intent API,但似乎每个人都使用带有额外 Intent.EXTRA_ALLOW_MULTIPLEIntent.ACTION_GET_CONTENT。我想知道这个 Intent 是否有一个可以绕过那些烦人的额外步骤的调整。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURES);
public void onActivityResult (int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == SELECT_PICTURES)
        {
            if (resultCode == Activity.RESULT_OK)
            {
                if (data.getClipData() != null)
                {
                    int count = data.getClipData().getItemCount();

                    for (int i = 0; i < count; i++)
                    {
                        Uri uri = data.getClipData().getItemAt(i).getUri();
                        uriList.add(i, uri);
                    }
                }
            }
        }

        // Some other stuff...
    }

当您创建一个全局意图时说:“我想要一些图像”,并且有一些应用程序作为处理此操作的选项,OS无法决定使用哪个应用完成此任务。

此代码可能对您有所帮助:

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
startActivityForResult(intent, SELECT_PICTURES);