vFile = new File("/xxx/" + System.currentTimeMillis() + ".jpg"); if (!vFile.exists()) { File vDirPath = vFile.getParentFile(); vDirPath.mkdirs(); } Uri uri = Uri.fromFile(vFile); // Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); //Android N :FileUriExposedException solved ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, vFile.getAbsolutePath()); Uri uri1 = UserInfoActivity.this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri1);
使用ContentProvider传Uri,避免crush.