Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android视频图像意图返回值_Java_Android_Image_Video_Android Intent - Fatal编程技术网

Java Android视频图像意图返回值

Java Android视频图像意图返回值,java,android,image,video,android-intent,Java,Android,Image,Video,Android Intent,我有一个目的,应该允许用户从图库中选择图片或视频。问题是,除了检查扩展名类型,我找不到其他方法来了解文件类型并以某种方式显示它 public void pickMedia(View View) { Intent intent = new Intent(); intent.setType("image/* audio/* video/*"); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategor

我有一个目的,应该允许用户从图库中选择图片或视频。问题是,除了检查扩展名类型,我找不到其他方法来了解文件类型并以某种方式显示它

public void pickMedia(View View) {
    Intent intent = new Intent();
    intent.setType("image/* audio/* video/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, REQUEST_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK)
        try {

           if (intent type == video)
                  A;

           if (intent type == audio)
                  B;

           if (intent type == image)
                  C;


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    super.onActivityResult(requestCode, resultCode, data);
}

我应该如何继续?

我通常创建一个类似于以下内容的方法:

public static File getFileFromUri(Uri uri, Activity activity){
        File f = null;

        String[] projection = { MediaStore.Images.Media.DATA };
        @SuppressWarnings("deprecation")
        Cursor cursor = activity.managedQuery(uri, projection, null, null, null);
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        if(cursor.getString(column_index)!=null){
            f = new File(cursor.getString(column_index));
        }else{

            InputStream is =null;
            try {
                is = activity.getContentResolver().openInputStream(uri);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                f= stream2file(is);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return f;
    }
以及:

在onActivityResult中,您可以按如下方式选择文件:

        Uri fileUri = data.getData();

        File f = getFileFromUri(fileUri, this);
        String filePath = f.getAbsolutePath();
        String type = getMimeType(filePath);

你在给本地画廊打电话吗?返回的[data]应该是选中的,您应该能够从中获取文件并确定其类型是的,我可以访问文件并检查扩展名。但我希望能够访问该类型(例如“image7jpg”)。要进行稳健的检测。。。
        Uri fileUri = data.getData();

        File f = getFileFromUri(fileUri, this);
        String filePath = f.getAbsolutePath();
        String type = getMimeType(filePath);