Android 调用相机闪退问题

背景:

在安卓7.0手机上,调用系统相机拍照,结果出现闪退。

原因:

Android7.0中为了提高私有文件的安全性,禁止向你的应用外公开 file:// URI。 如果一项包含文件 file:// URI类型 的 Intent 离开你的应用,应用失败,并出现 FileUriExposedException 异常。

解决方案:

public void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); imageUri = getImageUri(); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, PHOTO_REQUEST_CAMERA); } public Uri getImageUri() { File file = new File(Environment.getExternalStorageDirectory(), “/temp/” + System.currentTimeMillis() + “.jpg”); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } String path = file.getPath(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { imageUri = Uri.fromFile(file); } else { //兼容android7.0 使用共享文件的形式 ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, path); imageUri = this.getApplication().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); } return imageUri; } 转载自:https://blog.csdn.net/yinxing2008/article/details/82792582 ** 推荐阅读:**
<
Android模拟点击屏幕,实现按键精灵点击屏幕功能 Framework的范围 Framework简介

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:Android 调用相机闪退问题 https://www.yhzz.com.cn/a/15303.html

上一篇 2023-05-12
下一篇 2023-05-12

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。