Android 从图库中选取视频文件在 Nexus 5 中不起作用

Android Pick Video files From Gallery not Working in Nexus 5

在我的应用程序中,我需要将图片和视频从图库发送到服务器,我使用了以下代码从图库中挑选图片和视频。它在非棒棒糖版本的设备上运行良好。

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
photoPickerIntent.setType("image/* video/*");
startActivityForResult(photoPickerIntent,REQUEST_CODE_GALLERY_FILES);

并且在 onActivityresult 中,

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent returnedIntent) {
     super.onActivityResult(requestCode, resultCode, returnedIntent);
     if (returnedIntent == null) return;
     switch (requestCode) {
         case REQUEST_CODE_GALLERY_FILES:
             Uri uri = returnedIntent.getData();               
             break;
     }
}

但在 Nexus 5 之类的设备中它只显示图像,视频不显示在列表中。由于 Lollipop 中没有 Gallery。 我怎样才能从画廊或棒棒糖设备的任何地方获取视频文件。

试试这个方法。

private void pickImageOrVideo() {
      if (Build.VERSION.SDK_INT < 19) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
            photoPickerIntent.setType("image/* video/*");
            startActivityForResult(photoPickerIntent,REQUEST_CODE_GALLERY_FILES);
       } else {
            Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
            photoPickerIntent.setType("*/*");
            startActivityForResult(photoPickerIntent, REQUEST_CODE_GALLERY_FILES);
       }
}

对于图像和视频,如果设备是 运行 棒棒糖,您可以使用 setType(*/*);

此处 ACTION_GET_CONTENT 仅提供画廊选择,而 ACTION_PICK 提供更多选项以从不同的操作中选择图像和视频,

希望对您有所帮助!

添加 intent.putExtra(Intent.EXTRA_MIME_TYPES, new String[] {"image/*", "video/*"}); 到 SDK20+ 启动,以及主要类型。