我的应用使用相机拍照并长期使用。
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri resultUri = null;
resultUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new ContentValues());
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, resultUri);
startActivityForResult(imageCaptureIntent, IMAGE_CAPTURE_REQUEST_CODE);
但是当我调用takePersistableUriPermission()时,我将获得SecurityException:找不到可持久的权限授予
我读过这个 Getting Permission Denial Exception。 它适用于ACTION_OPEN_DOCUMENT。 如何获得Camera的持久许可?
答案 0 :(得分:5)
MediaStore
URI的访问权限仅受存储权限(即READ_EXTERNAL_STORAGE)控制,因此只要您继续保留存储权限,就可以访问Uris,因此在这种情况下,您不能根本不需要保留权限。
ACTION_GET_CONTENT
,ACTION_OPEN_DOCUMENT
等中使用的 URI based permissions通过返回的Intent
中包含的FLAG_GRANT_READ_URI_PERMISSION提供对URI的特殊一次访问权限
只有文档URI(DocumentsContract.isDocumentUri()返回true的那些URI)允许您persist permissions更永久地访问Uri。