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);