首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAF -检查Uris的权限不在getPersistedUriPermissions()列表中

SAF -检查Uris的权限不在getPersistedUriPermissions()列表中
EN

Stack Overflow用户
提问于 2019-09-16 19:09:44
回答 1查看 573关注 0票数 0

我的Android应用程序必须检查SAF文件夹是否被授予读/写权限。

一些uris被存储为字符串,因为它们是由用户选择的,并通过以下代码授予权限:

代码语言:javascript
复制
static public String takePermanentReadWritePermissions(Activity activity, Intent data)
{
    int takeFlags = data.getFlags()
    &
    (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    ContentResolver resolver = activity.getContentResolver();
    resolver.takePersistableUriPermission(data.getData(),takeFlags);
    return data.getData().toString();
}

并通过以下代码执行检查:

代码语言:javascript
复制
static boolean arePermissionsGranted(Activity activity, String uriString)
{
    ContentResolver resolver = activity.getContentResolver();
    List<UriPermission> list = resolver.getPersistedUriPermissions();
    for (int i = 0; i < list.size(); i++)
    {
        if(((Uri.decode(list.get(i).getUri().toString())).equals( uriString)) && list.get(i).isWritePermission()&& list.get(i).isReadPermission())
        {
        return true;
        }
    }
    return false;
}

其他一些uris是使用SAF方法创建的,例如,以前授权的文件夹中的文件夹。子文件夹应经过授权。

尽管如此,我的应用程序必须检查权限授予是否在任何时候仍然有效。

我希望能够检查一个uri,而不考虑在应用程序“空间”中的授权uri列表。

因此,我还想检查未显式包含的uris。

EN

回答 1

Stack Overflow用户

发布于 2019-09-26 17:41:39

一些其他uris是使用

方法创建的,例如,>>previously授权文件夹中的文件夹。子文件夹应经过授权。

不是的。不用谢。如果用户选择了文件夹/树,您将自动拥有对所有文件和子文件夹的访问权限。也添加到您稍后在其中创建的文件和子文件夹。

我不清楚你为什么要检查这个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57955561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档