我有一个程序流程,我要求用户选择一个用于点击图片的应用程序,然后在接收捕获的图像URI时,我便于选择一个用于裁剪它的应用程序 - 捕获和裁剪活动不是我的。
当我收到捕获的URI并尝试将其发送到其他应用程序进行裁剪时,会出现问题。你看,由于捕获它并创建了URI的应用程序与裁剪它的应用程序不同,我从Crop App获得java.lang.SecurityException
,如下所示:
Uid 10159无权使用uri 0 @ content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia %2F74090 / ORIGINAL / NONE / 1104144717
以下是我为发送图片而编写的代码:
intent.setDataAndType(mImageCaptureUri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.putExtra(MediaStore.EXTRA_OUTPUT, (String)null);
this.startActivityForResult(intent, CROP_FROM_CAMERA);
问题是,我如何促进此其他裁剪应用程序的权限来写这个URI?