Приложение, получившее взломанный в android 7.0, когда я обрезаю изображение.Image crop не работает в android 7.0
Исключение: 02-06 12: 40: 53.717 5671-5685/com.tribyte.iTutor2 E/DatabaseUtils: Дать исключение разбазаривать java.lang.SecurityException: Разрешение Отказ: написание android.support.v4.content .FileProvider uri content: //com.tribyte.iTutor2.provider/external_files/Android/data/com.tribyte.iTutor2/files/Application/sites/default/files/askexpertimages/[email protected]_1486365038955_crop.png от pid = 6784 , UID = 10105 требует провайдер быть экспортированы или grantUriPermission() в android.content.ContentProvider.enforceWritePermissionInner (ContentProvider.java:682) в android.content.ContentProvider $ Transport.enforceWritePermission (ContentProvider.java:497) на android.content.ContentProvider $ Transport.enforceFilePermission (ContentProvider.java:469) на android.content.ContentProvider $ Transport.openAssetFile (ContentProvider.java:384) на android.content.ContentProviderNative.onTransact (ContentProviderNative.java:262) на android.os.Binder.execTransact (Binder.java:565)
Пример кода:
private void performCrop()
{
try
{
Intent intent = new Intent("com.android.camera.action.CROP");
List<ResolveInfo> resInfoList = this.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList) {
String packageName = resolveInfo.activityInfo.packageName;
this.grantUriPermission(packageName, temppicUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(picUri.toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
intent.setDataAndType(picUri,mimetype);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra("crop", "true");
intent.putExtra(MediaStore.EXTRA_OUTPUT, temppicUri);
intent.putExtra("outputX", 512);
intent.putExtra("outputY", 512);
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
//start the activity - we handle returning in onActivityResult
if (intent.resolveActivity(getPackageManager()) != null)
{
intent.putExtra("return-data", true);
startActivityForResult(intent, PIC_CROP);
}
}
catch(ActivityNotFoundException anfe)
{
//display an error message
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
Вы установили разрешение WRITE_EXTERNAL_STORAGE в манифест? –
Я дал разрешение на внешнее хранилище READ/WRITE. – Rabbitrsr