android7 目录权限,uri 那部分在安卓7以后有权限风险,不能通过。用fileprovider 后,相机2拍照后显示图片报错找不到文件或文件夹W/System.err: java.io.Fil...

源自:3-1 Android自定义相机之定义一个Camera

uri 那部分在安卓7以后有权限风险,不能通过。用fileprovider 后,相机2拍照后显示图片报错找不到文件或文件夹W/System.err: java.io.FileNotFoundException: /storage/emulated/0/temp.jpg: open failed: ENOENT (No such file or directory)

public void startCamera2(View view){

Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

//        Uri photoUri = Uri.fromFile(new File(mFilePath));//显示的路径有权限风险

photoUri = FileProvider.getUriForFile(

this,

getPackageName() + ".provider",

new File(mFilePath));

intent.putExtra(MediaStore.EXTRA_OUTPUT,photoUri); //更改照片存储路径到photoUri

startActivityForResult(intent,REQ_2);   //打开相机拍照,返回相机结果(照片)并回到原界面

}

//onActivityResult部分代码

else if(requestCode == REQ_2){

FileInputStream fis = null;

try {

fis = new FileInputStream(new File(mFilePath));

Bitmap bitmap = BitmapFactory.decodeStream(fis);  //涉及写入内存卡权限,在manifest里面配置

//                    Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(photoUri));

mImageView.setImageBitmap(bitmap);           //从内存读取原图

提问者:慕粉9399637

2020-05-06 11:18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值