我的应用程序能够在从用户那里选择的SAF文件夹中创建子文件夹。然后通过此方法授予父文件夹永久权限(直到卸载应用程序):
static public Uri takePermanentReadWritePermissions(Activity activity, Uri uri,int flags)
{
int takeFlags = flags
&
(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
);
ContentResolver resolver = activity.getContentResolver();
resolver.takePersistableUriPermission(uri,takeFlags);
return uri;
}
生成的Uri以SAF方法产生的形式存档。有人说,..... folder / subfolder之类的Uri形式(同样在/编码时)通常也不可靠,因为提供程序可能只产生一个随机字符串。
我的应用程序必须检查创建的子文件夹是否仍在文件夹中(用户可以删除它)。
事实是该应用程序无法存储每个uri(可以将其卸载),因此它猜测它的格式类似于... folder / subfolder。“子文件夹”是应用程序分配给子文件夹的名称,它是一个简单的字符串,例如名称。
所以我要问的是,当uri表格根本不可靠时如何执行所需的检查?
关于Uris,我的应用非常简单。
我只考虑两种类型的Uris:
1-用户选择的uris在用户选择的一个主文件夹中创建了2个uri]
[主文件夹已存档,选择的文件夹已存档。
创建的子文件夹仅处于mainfolder-> subfolder形式,使用DocumentFile方法很容易检查(前提是它们可以正常工作,我正在测试它们)。