【发布时间】:2017-07-10 13:37:03
【问题描述】:
嗨,首先我知道这个问题已经被问过了,但我坚持了不止一天我想用相机意图拍照并将其保存在手机的ExternalStoragePublicDirectory 上,但拍照后它没有'不返回OnActivityResult 也不保存图片。它在 android 6 和 7 中不起作用:
任何帮助都会得到帮助!
Uri imageUri = setImageUri();
Intent intent1 = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent1.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri);
intent1.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
List<ResolveInfo> resInfoList =
MedicalActivity.this.getPackageManager().queryIntentActivities(intent1,
PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList) {
String packageName =resolveInfo.activityInfo.packageName;
MainActivity.this.grantUriPermission(packageName, imageUri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION |
Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
startActivityForResult(intent1, CAPTURE_IMAGE);
设置图片Uri:
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT) {
File mediaStorageDir = new File(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
"myappimages");
if (!mediaStorageDir.exists()) {mediaStorageDir.mkdir();}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date());
File file;
file = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + ".jpg");
Uri imgUri = FileProvider.getUriForFile(MedicalActivity.this,
BuildConfig.APPLICATION_ID + ".provider",
file);
return imgUri;
}
文件提供者路径:
<external-path name="myapp_images_path" path="Pictures/myappimages"/>
【问题讨论】: