打开系统相机拍照,插入EXTERNAL_CONTENT_URI中

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

猜你喜欢

转载自blog.csdn.net/qq_37488573/article/details/80789939