图库意图仅显示图片或视频,而不是两者都显示?

时间:2015-07-14 19:45:43

标签: android android-intent android-camera android-camera-intent

我正在尝试允许用户从他的设备中选择图片或视频,目前它只显示视频或图像,具体取决于以下代码中的内容:

 Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

                //set type to include video too
                galleryIntent.setType("image/*, video/*");

                startActivityForResult(galleryIntent, GALLERY_IMAGE_REQUEST_CODE);
            }
        };

不确定我做错了什么,但是setType似乎没错,我在图像和视频之间尝试使用和不使用逗号...

3 个答案:

答案 0 :(得分:0)

 case 2: //Choose Pic

                            Intent choosePhotoIntent = new Intent(Intent.ACTION_GET_CONTENT);
                            choosePhotoIntent.setType("image/*");
                            startActivityForResult(choosePhotoIntent, PICK_PHOTO_REQUEST);
                            break;
                        case 3: //Choose Video
                            Intent chooseVideoIntent = new Intent(Intent.ACTION_GET_CONTENT);
                            chooseVideoIntent.setType("video/*");
                            Toast.makeText(MyActivity.this,getString(R.string.video_message), Toast.LENGTH_LONG).show();
                            startActivityForResult(chooseVideoIntent, PICK_VIDEO_REQUEST);
                            break;

尝试以上..你需要有单独的选项..

答案 1 :(得分:0)

我遇到了同样的问题,它只使用列表中的第一个MIME类型。

这最终为我工作:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("*/*");
String[] mimeTypes = {"image/*", "video/*"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
startActivityForResult(intent, REQUEST_CODE_CAMERA_ROLL);

答案 2 :(得分:0)

这对我有用:

Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_MEDIA);