<小白记录>
本地调用相册,我这里调用的是视频,调用前也还是要获取权限的,这里就不多写了
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setType("video/*");
//intent.setType("image/*");//图片
startActivityForResult(intent, 1);//1是index,在相册回来时,会在onActivityResult中回调,可以知道哪边来的,处理哪一块逻辑
这里是调用本地功能时回调的方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case 1: {
handleVideoPath(data);//这是我本地方法,解析选择完视频后所需要的处理逻辑,在下面
break;
}
default:
getTakePhoto().onActivityResult(requestCode, resultCode, data);
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
这是里处理data的方法,解析出来想要的路径及其他内容
public void handleVideoPath(Intent data) {
Uri uri = data.getData();
//指定解析出来的值,路径和大小,因为我是需要上传文件的,但是也不能过大,所以只要这两个值,需要其他的自行设定,都是在这个数组内设置,这是视频,图片直接更改Video为Image(MediaStore.Image.Media.DATA)
String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media.SIZE };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
cursor.moveToFirst();
String path = cursor.getString(0); // 图片文件路径
String size = cursor.getString(1); // 图片大小
//Log.d("相册地址", "path:"+path + "size:"+size);
}