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使用的意图上添加标志是没有意义的。只有提供程序才能授予权限。你不是消费者。