Ari*_*e13 6 android saf mediastore android-10.0
由于更改与访问共享存储的授权有关,因此似乎不再可能通过这种方法搜索所有 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);
Run Code Online (Sandbox Code Playgroud)
检查此链接:媒体数据限制
我看到的唯一解决方案是使用 SAF 以递归方式扫描共享存储的所有树,这在我看来资源非常昂贵且荒谬。
有没有人有其他想法?
范围存储的基本思想正是为了避免这种行为,你无法知道用户手机中的某个位置是否存在某些文件。您只需请求访问存储树的权限并按照您所说的扫描所有内容即可。即使在这种情况下,用户也可以选择与根目录不同的文件夹,因此您的应用程序将仅限于该文件夹。这个想法可以是执行扫描,然后使用在树 URI 和后代的修改上安排的作业(作业服务)来更新数据库,保持同步。
| 归档时间: |
|
| 查看次数: |
2952 次 |
| 最近记录: |