Android 7.0 调取相机崩溃 android.os.FileUriExposedException
2017-10-10 10:42
531 查看
/**
* 选择相机
*/
private void showCameraAction() {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
// 设置系统相机拍照后的输出路径
mTmpFile = FileUtil.createTmpFile(this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
doTakePhotoIn7(mTmpFile.getAbsolutePath());
} else {
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(mTmpFile));
startActivityForResult(cameraIntent,
CameraSdkParameterInfo.TAKE_PICTURE_FROM_CAMERA);
}
* 选择相机
*/
private void showCameraAction() {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
// 设置系统相机拍照后的输出路径
mTmpFile = FileUtil.createTmpFile(this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
doTakePhotoIn7(mTmpFile.getAbsolutePath());
} else {
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(mTmpFile));
startActivityForResult(cameraIntent,
CameraSdkParameterInfo.TAKE_PICTURE_FROM_CAMERA);
}
} else { Toast.makeText(this, R.string.camerasdk_msg_no_camera, Toast.LENGTH_SHORT).show(); } } //在Android7.0以上拍照 private void doTakePhotoIn7(String path) { Uri mCameraTempUri; try { ContentValues values = new ContentValues(1); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg"); values.put(MediaStore.Images.Media.DATA, path); mCameraTempUri = getContentResolver() .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); takePhoto(CameraSdkParameterInfo.TAKE_PICTURE_FROM_CAMERA, mCameraTempUri); } catch (Exception e) { e.printStackTrace(); } } public void takePhoto(int requestCode, Uri uri) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); if (uri != null) { intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); } startActivityForResult(intent, requestCode); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 相机拍照完成后,返回图片路径 if (requestCode == CameraSdkParameterInfo.TAKE_PICTURE_FROM_CAMERA) { if (resultCode == Activity.RESULT_OK) { mTmpFile 就是你的拍好照之后的文件 ....... //注意 提前命名的file 此时在这里 data为空 不要通过data在获取你的file路径 } } }
相关文章推荐
- 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
- Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
- 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
- Android 7.0 系统相机崩溃解决android.os.FileUriExposedException
- Android 7.0调用系统相机(文件访问crash android.os.FileUriExposedException)
- Android 7.0调用系统相机报错Caused by: android.os.FileUriExposedException: file:///storage/emulated/0/rpms/14
- android.os.FileUriExposedException: file:///storage/emulated/0/DCIM/Camera/2018012Android 7.0相继崩溃的问题
- 开发中碰到的问题:Android 7.0 更新APK在安装时的报错 android.os.FileUriExposedException: file:///storage/emulated/0/And
- Android 7.0 FileUriExposedException 解决,支持新浪微博,启动相机
- android 7.0系统打开本地文件的问题android.os.FileUriExposedException:file:///storage/emulated/0/
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- Android N 7.0中报错:android.os.FileUriExposedException的解决方法
- [置顶] 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- Android 7.0 安装应用报错:android.os.FileUriExposedException
- android 7.0读取文件报异常信息 - android.os.FileUriExposedException
- android 7.0 + 相机拍照 FileUriExposedException
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- android 7.0系统解决拍照的问题android.os.FileUriExposedException:file:///storage/emulated/0/test.txt
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- Android 7.0调用相机拍照 报错 FileUriExposedException