背景:
在安卓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