Android 7.0版本相机的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39249422/article/details/79266730

Android 出了7.0版本相机需要添加一些权限,6.0需要自己动态添加权限可是到7.0就还是报权限的错误

1.首先在Manifest文件里添加


然后在res下新建一个目录


下面在代码中实现我这里也写了调用相册的方法。

首先在这里用 startActivityForResult 做的跳转

private void getPicFrom(int type) {
    switch (type) {
        //相机
        case CAPTURE_IMAGE_CAMERA:
            // 拍照
            //设置图片的保存路径,作为全局变量
            imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/filename.jpg";
            File temp = new File(imageFilePath);
            Uri imageFileUri = FileProvider.getUriForFile(this, "com.sjd.conch.fileprovider", temp);//获取文件的Uri
            Intent it = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//跳转到相机Activity
            it.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            it.putExtra(MediaStore.EXTRA_OUTPUT, imageFileUri);//告诉相机拍摄完毕输出图片到指定的Uri
            startActivityForResult(it, 102);
            break;
        //相册
        case IMAGE_STORE:
            Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);
            intent1.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
            startActivityForResult(intent1, 103);
            break;

    }
}
实现  onActivityResult 实现这个方法,在这里面判断是拍照还是相册。

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case 102:  //拍照
            if (resultCode == Activity.RESULT_OK) {
                Bitmap bmp = BitmapFactory.decodeFile(imageFilePath);
                mImgYhjt.setImageBitmap(bmp);
                picPathUrl = imageFilePath;
            }
            break;
        case 103:   //相册
            String path = UIUtils.getPath(this, data.getData());
            if (null != path) {
                File file = new File(path);
                mImgYhjt.setImageURI(UIUtils.getUriFromFile(BJYouHuiJuan_Activity.this, file));
                picPathUrl = path;
            }
            break;
    }
    super.onActivityResult(requestCode, resultCode, data);

}
这样7.0的相机就可以使用,写的不好希望大家多多指点!!!




猜你喜欢

转载自blog.csdn.net/qq_39249422/article/details/79266730