【问题标题】:Getting both Photos and Videos from the new Google Photos app on Android从 Android 上的新 Google 照片应用获取照片和视频
【发布时间】:2015-06-03 18:39:58
【问题描述】:

我希望用户将一堆视频/照片导入我的应用程序。这是我之前使用的代码:

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
        intent.setType("image/*,video/*");
        activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA);

我遇到的问题是上面只返回来自新 Google 照片应用的照片。如果我仅将数据类型更改为“视频/*”,照片应用程序会返回视频。这是给 KitKat+ 的

编辑:

我尝试了以下代码 - 它适用于某些画廊,但不适用于大多数画廊,也不适用于 Google 照片:

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("*/*");
    if (AndroidHelper.isKitKatAndAbove()) {
        Log.d(TAG, "Pick from gallery (KitKat+)");
        String[] mimeTypes = {"image/*", "video/*"};
        intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
        activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA);
    } else {
        Log.d(TAG, "Pick from gallery (Compatibility)");
        activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA);
    }

【问题讨论】:

标签: android android-intent google-photos


【解决方案1】:

这就是我最终做的:

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("*/*");
        if (AndroidHelper.isKitKatAndAbove()) {
            Log.d(TAG, "Pick from gallery (KitKat+)");
            intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
            activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA);
        } else {
            Log.d(TAG, "Pick from gallery (Compatibility)");
            activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA);
        }        

然后当我得到结果时,我会检查文件的类型。似乎工作正常。

【讨论】:

  • 是的,但它有点像 hack,因为我们只想显示图像和视频,这种方法允许所有类型的文件。还是谢谢。
  • 我同意这有点骇人听闻,因此我之前没有发布过 :) 如果您想出更好的解决方案,请随时发布答案 - 我不会选择我自己的答案作为这个答案。
  • 嗯,这是目前唯一的解决方案 :) 谢谢!
  • 谷歌可耻。
  • 在这里写了这个:issuetracker.google.com/issues/123811931。请考虑主演。现在,我还写了一个更好的选择文件的方法:stackoverflow.com/a/54502555/878126
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
相关资源
最近更新 更多