我的Android应用程序必须检查SAF文件夹是否被授予读/写权限。
一些uris被存储为字符串,因为它们是由用户选择的,并通过以下代码授予权限:
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();
}并通过以下代码执行检查:
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。
发布于 2019-09-26 17:41:39
一些其他uris是使用
方法创建的,例如,>>previously授权文件夹中的文件夹。子文件夹应经过授权。
不是的。不用谢。如果用户选择了文件夹/树,您将自动拥有对所有文件和子文件夹的访问权限。也添加到您稍后在其中创建的文件和子文件夹。
我不清楚你为什么要检查这个。
https://stackoverflow.com/questions/57955561
复制相似问题