我在Android编程方面很陌生。我想打开一个目录并获得对它的持久读取访问权限。我将标志FLAG_GRANT_PERSISTABLE_URI_PERMISSION
添加到意图中。
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
startActivityForResult(Intent.createChooser(intent, null), MY_REQUEST);
在onActivityResult
方法上,我获取data
以获得喜欢uri
Uri uri = data.getData()
cUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri,
DocumentsContract.getTreeDocumentId(uri));
getContentResolver().takePersistableUriPermission(cUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
我得到了一个SecurityException: No persistable permission grants found
但权限设置为intent.flag。
为什么我收到此错误以及如何避免它?
谢谢 彼得
我将标志FLAG_GRANT_PERSISTABLE_URI_PERMISSION添加到意图中
这不是该标志的用途。
在onActivityResultMethode上,我获取数据以获取类似
uri
删除cUri
。将uri
与takePersistableUriPermission()
一起使用。