File file;
private void showCameraAction() {
String path = Environment.getExternalStorageDirectory() + File.separator + "images"; //获取路径
String fileName = new Date().getTime() + ".png";//定义文件名
file = new File(path, fileName);
if (!file.getParentFile().exists()) {//文件夹不存在
file.getParentFile().mkdirs();
}
Uri imageUri = FileProvider.getUriForFile(this, "com.picker.fileprovider", file);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, 5223);//takePhotoRequestCode是自己定义的一个请求码
}
回调代码拿到照片插入到
EXTERNAL_CONTENT_URI
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
// 相机拍照完成后,返回图片路径
case 5223:
if (file.exists()) {
long length = file.length();
String status = Environment.getExternalStorageState();
ContentValues values = new ContentValues();
long time = System.currentTimeMillis();
String path = file.getAbsolutePath();
String name = file.getName();
values.put(MediaStore.Images.Media.DATA, path);
values.put(MediaStore.Images.Media.DISPLAY_NAME, name);
values.put(MediaStore.Images.Media.SIZE, length);
values.put(MediaStore.Images.Media.DATE_ADDED, time);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
if (status.equals("mounted")) {
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
} else {
getContentResolver().insert(MediaStore.Images.Media.INTERNAL_CONTENT_URI, values);
}
Image image=new Image(path,name,time,length);
mAdapter.addData(0,image);
}
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}