1

尽管打电话

ContentResolver.TakePersistableUriPermission(uri, ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission)

在文档树 URI 上,该 URI 不会在设备重新启动后保留,尽管该ContentResolver.PersistedUriPermissions属性包含设备重新启动之前请求的 URI。文档树是这样获得的(每个存储访问框架持久权限不起作用):

var intent = new Intent(Intent.ActionOpenDocumentTree);
intent.AddFlags(
    ActivityFlags.GrantReadUriPermission |
    ActivityFlags.GrantWriteUriPermission |
    ActivityFlags.GrantPersistableUriPermission | 
    ActivityFlags.GrantPrefixUriPermission);
StartActivityForResult(intent, INTENT_SELECT_TREE);

有什么我想念的吗?这是在模拟器和硬件上的 AOSP Lollipop 上。

4

1 回答 1

0

以下代码对我有用:

protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);

    var androidUri = data.Data;
    var takeFlags = data.Flags & (ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission);
    ContentResolver.TakePersistableUriPermission(androidUri, takeFlags);
}
于 2019-04-06T00:41:49.300 回答