Android,对图像、视频和音频使用相同的onActivityResult

Android,对图像、视频和音频使用相同的onActivityResult,android,image,audio,video,media,Android,Image,Audio,Video,Media,我想对图像、视频和音频使用相同的onActivityResult 问题。 当我拾取音频时,它会在视频和图像中保存音频的路径。 我在分离图像、视频和音频时遇到问题 我的密码 private static final int SELECT_PICTURE = 1; private static final int SELECT_AUDIO = 1; private static final int REQUEST_TAKE_GALLERY_VIDEO = 1; 音频、图像、视频 addVideo.

我想对图像、视频和音频使用相同的onActivityResult

问题。
当我拾取音频时,它会在视频和图像中保存音频的路径。 我在分离图像、视频和音频时遇到问题

我的密码

private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 1;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1;
音频、图像、视频

addVideo.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("video/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent,"Select Video"),REQUEST_TAKE_GALLERY_VIDEO);
        }
    });

    addAudio.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("audio/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent,"Select Audio"),SELECT_AUDIO);
        }
    });

    addImage.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
        }
    });
onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == REQUEST_TAKE_GALLERY_VIDEO) {
            Uri selectedVideoUri = data.getData();
            selectedVideoPath = getPath(selectedVideoUri);
        }
        if (requestCode == SELECT_AUDIO) {
            Uri selectedAudioUri = data.getData();
            selectedAudioPath = getPath(selectedAudioUri);
        }
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
            File f = new File(selectedImagePath);
            if(f.exists()){
                //w, h
                Bitmap myBitmap = resizeImage.getCompressedBitmap(200, 200, f);
                img.setImageBitmap(myBitmap);
            }
        }
    }
}

Charm GELDJ必须根据以下内容更新静态值

private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 2;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3;
private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 2;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3;

Charm GELDJ必须根据以下内容更新静态值

private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 2;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3;
private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 2;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3;

您对所有请求代码使用相同的id

private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 1;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1;
OnActivityResult无法区分这两者之间的区别。你应该给他们一个唯一的id


您对所有请求代码使用相同的id

private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 1;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1;
OnActivityResult无法区分这两者之间的区别。你应该给他们一个唯一的id