如何列出android 10上的所有pdf文件?

问题描述 投票:1回答:1

由于更改与访问共享存储的授权有关,因此似乎不再可能通过这种方法搜索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类型的所有文档(使用...

android mediastore android-10.0 saf
1个回答
1
投票

作用域存储的基本思想是完全避免这种行为,您无法知道用户电话中是否存在某些文件。您可以只请求访问存储树的权限并按照您所说的扫描所有内容。即使在这种情况下,用户也可以选择与根目录不同的文件夹,因此您的应用程序将限于该文件夹。这个想法可能是执行扫描,然后使用安排在对树URI和后代进行修改时安排的作业(作业服务)来同步更新数据库。

© www.soinside.com 2019 - 2024. All rights reserved.