【问题标题】:Trying To Pick images From Samsung's Gallery尝试从三星的图库中挑选图像
【发布时间】:2017-09-02 18:29:54
【问题描述】:

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

 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 相册等...

当我选择谷歌相册时,我可以挑选照片,但在同一设备(三星 Galaxy S6 Edge)上,当我选择三星的图库后,我连一张照片都无法挑选,只是它们的显示,无论我点击一张照片多久,它都不会改变。

当我从他们的启动器进入三星的画廊时,显示不同,我可以长按以选择图像。

我还检查了小米的默认图库,它有效,我可以挑选照片。

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

【问题讨论】:

    标签: android image android-intent gallery


    【解决方案1】:

    这是我的代码,目的是让用户选择想要的图库并从中挑选图片

    首先,该代码中与“画廊”没有任何关系。任意数量的应用程序都可以响应 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,并且您不会使用Uri (MediaStore.Images.Media.EXTERNAL_CONTENT_URI)。

    或者,向三星投诉他们应用中的错误。

    打开正确的画廊显示?

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

    您始终可以构建自己的画廊风格的图像选择 UI。这将为您提供跨设备的一致结果,但工作量更大。

    【讨论】:

    • 感谢您的详细解答。没有任何建议对我有用,所以我想这是一个错误。只是为了记录,他们确实可以选择长按以选择他们的应用程序,而不是在从我的应用程序打开的显示中。
    【解决方案2】:

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

    ACTION_GET_CONTENT 将返回一个Content URI,您应该使用handle appropriately

    理想的情况是执行某种条件检查以确定您使用哪个选择器,而不是将自己限制在一种变通方法中,希望所有设备都能正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多