由于更改与访问共享存储的授权有关,因此似乎不再可能通过这种方法搜索pdf类型的所有文档(requestLegacyExternalStorage =“ false”:]]
ContentResolver cr = context.getContentResolver(); Uri uri = MediaStore.Files.getContentUri("external"); String[] projection = null; String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_NONE; String[] selectionArgs = null; String sortOrder = null; Cursor allNonMediaFiles = cr.query(uri, projection, selection, selectionArgs, sortOrder);
检查此链接:Media data restrictions
我看到的唯一解决方案是以递归方式扫描与SAF共享的所有存储树,在我看来这在资源上非常昂贵且荒谬。
有人有其他想法吗?
由于更改与访问共享存储的授权有关,因此似乎不再可以通过这种方法搜索pdf类型的所有文档(使用...
作用域存储的基本思想是完全避免这种行为,您无法知道用户电话中是否存在某些文件。您可以只请求访问存储树的权限并按照您所说的扫描所有内容。即使在这种情况下,用户也可以选择与根目录不同的文件夹,因此您的应用程序将限于该文件夹。这个想法可能是执行扫描,然后使用安排在对树URI和后代进行修改时安排的作业(作业服务)来同步更新数据库。