尝试从三星的图库中选择图像

时间:2017-09-02 18:29:54

标签: android image android-intent gallery

我想给用户提供选择多张图片的选项。这是我的代码,以便让用户选择想要的图库并从那里选择图像:

 public void pickImages() {

        Intent intent = new Intent( Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        intent.setType("image/*");
        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

        startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_IMAGE_MULTIPLE);
    }

当我点击pickImages按钮时,我可以在默认图库之间进行选择,例如三星,或Google照片,等...

当我选择Google照片库时,我可以选择照片,但在同一台设备(三星Galaxy S6 Edge)上,在我选择三星的画廊之后,我可以'甚至只拍一张照片,它只是显示它们,无论我点击一张照片多久,它都不会改变。

当我从发射器进入三星的画廊时,显示效果不同,我可以长按以选择图像。

我也检查了小米的默认画廊,它有效,我可以选择照片。

如何更改并打开正确的图库显示?

2 个答案:

答案 0 :(得分:2)

  

这是我的代码,以便让用户选择想要的图库并从那里选择图像

首先,该代码中没有任何内容与“图库”有很大关系。任意数量的应用都可以响应该Intent结构,而这些应用不必是“图库”。

其次,ACTION_PICK不应指定MIME类型。请参阅the documentation

第三,ACTION_PICK不支持EXTRA_ALLOW_MULTIPLE。请参阅the documentation

  

在我选择三星的画廊之后,我甚至无法选择一张照片,它只是显示它们,无论我点击一张照片多久,它都不会改变

首先,并不要求所有应用都支持对内容进行长时间点击。

其次,长按模式通常仅与多选情况相关,ACTION_PICK不支持多选。

但是,你完全有可能在三星的应用程序中看到一个真正的错误。

  

如何更改

好吧,你可以清理你正在使用的ACTION_PICK Intent(删除setType()putExtra()来电,看看是否有任何变化。

或者,您可以切换到ACTION_GET_CONTENT,其中 使用setType() 有可能支持EXTRA_ALLOW_MULTIPLE。不要求任何ACTION_GET_CONTENT实施支持EXTRA_ALLOW_MULTIPLE,也不要使用UriMediaStore.Images.Media.EXTERNAL_CONTENT_URI)。

或者,向三星抱怨他们应用中的错误。

  

打开右侧图库显示?

没有“正确的图库展示”。处理特定隐式IntentACTION_PICKACTION_GET_CONTENT)的是用户,其次是设备制造商。你没有得到投票。

您始终可以构建自己的图库样式图像选择UI。这将为您提供跨设备的一致结果,但这将是更多的工作。

答案 1 :(得分:0)

在大多数三星设备上,sdkmanager --update返回ACTION_PICK时存在问题。一种解决方法是使用null选择您的图像。

ACTION_GET_CONTENT将返回ACTION_GET_CONTENT,您应该handle appropriately

理想的方案是执行某种条件检查以确定您使用的选择器,以免将自己限制在一种变通方法上,以期希望所有设备都能发挥相同的功能。