Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android持久化uri权限don';无法在设备重新启动时保持_Android_Xamarin_Storage Access Framework - Fatal编程技术网

Android持久化uri权限don';无法在设备重新启动时保持

Android持久化uri权限don';无法在设备重新启动时保持,android,xamarin,storage-access-framework,Android,Xamarin,Storage Access Framework,尽管打电话 ContentResolver.TakePersistableUriPermission(uri, ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission) 在文档树URI上,URI不会在设备重新启动时保持不变,尽管ContentResolver.PersistedUriPermissions属性包含设备重新启动前请求的URI。文档树的获取方式如下(根据): 我有什么遗漏吗?这是在AO

尽管打电话

ContentResolver.TakePersistableUriPermission(uri, ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission)
在文档树URI上,URI不会在设备重新启动时保持不变,尽管
ContentResolver.PersistedUriPermissions
属性包含设备重新启动前请求的URI。文档树的获取方式如下(根据):


我有什么遗漏吗?这是在AOSP棒棒糖上,无论是在模拟器上还是在硬件上。

以下代码适用于我:

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);
}

以下代码适用于我:

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);
}

你扔掉了你得到的旗帜。在您提供的链接中,您可以看到
int takeFlags=data.getFlags()&(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION)。您没有使用它。此外,尝试在startactivityforresult使用的意图上添加标志是没有意义的。只有提供程序才能授予权限。你不是消费者,你扔掉了你得到的旗帜。在您提供的链接中,您可以看到
int takeFlags=data.getFlags()&(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION)。您没有使用它。此外,尝试在startactivityforresult使用的意图上添加标志是没有意义的。只有提供程序才能授予权限。你不是消费者。