DocumentContract 上的 ContentResolver 查询列出所有文件,忽略选择

2023-12-25

我试图从具有特定 MIME 类型的目录中获取所有文件 - 我想要所有图像。

我使用了一些示例代码,其中使用 MediaStore 作为 URI,但后来发现很难为所选目录过滤它,因为结果集中返回的 URI 的格式与我提供的 URI 的格式不同...

所以我找到了这个示例代码https://github.com/googlesamples/android-DirectorySelection https://github.com/googlesamples/android-DirectorySelection

它查询所选子树上的 DocumentContract,现在需要过滤所需的 MIME 类型。

问题是:无论我提供什么作为选择参数,它总是会列出该目录中找到的所有文件/目录。

我什至尝试“1=2”作为选择,这仍然列出了所有内容。 任何想法我做错了什么?

val ChildrenUri = DocumentsContract.buildChildDocumentsUriUsingTree( 乌里, DocumentsContract.getTreeDocumentId(uri) )

        val childCursor = contentResolver.query(
            childrenUri,
            arrayOf(DocumentsContract.Document.COLUMN_DISPLAY_NAME, COLUMN_MIME_TYPE),
            "$COLUMN_MIME_TYPE=?",
            Array(1){MimeTypeMap.getSingleton().getExtensionFromMimeType("jpg")},
            null
        )
        Log.i("ADDFOLDER", "files: ${childCursor.count}")
        try {
            while (childCursor.moveToNext()) {
                Log.d(
                    TAG, "found child=" + childCursor.getString(0) + ", mime=" + childCursor
                        .getString(1)
                )
            }
        } finally {
            closeQuietly(childCursor)
        }

FileSystemProvider 不支持子项的选择或排序参数,它已损坏。

https://github.com/aosp-mirror/platform_frameworks_base/blob/53a9ccaa926945149b4546c67b50ce1ae88ba777/core/java/com/android/internal/content/FileSystemProvider.java#L285 https://github.com/aosp-mirror/platform_frameworks_base/blob/53a9ccaa926945149b4546c67b50ce1ae88ba777/core/java/com/android/internal/content/FileSystemProvider.java#L285

基本 DocumentsProvider 也删除了子查询的选择参数,因此我不会依赖它来工作。您可以使用搜索文档 Uri,它会进行过滤,但仍然忽略排序顺序(编辑:更重要的是,是递归搜索,因此它将在任何子文件夹中搜索。)*

*From: https://www.reddit.com/r/androiddev/comments/b80qqt/weekly_questions_thread_april_01_2019/ek9oew6/ https://www.reddit.com/r/androiddev/comments/b80qqt/weekly_questions_thread_april_01_2019/ek9oew6/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DocumentContract 上的 ContentResolver 查询列出所有文件,忽略选择 的相关文章

  • 使用 google Directions API 的地图视图绘制方向 - 解码折线

    我正在尝试使用 Google 方向 API 在我的地图视图上显示方向 但我在从 JSON 响应获取数据时遇到困难 我可以获得 级别 和 点 字符串 但无法弄清楚如何将它们解码为地图上的点 任何帮助将非常感激 我有一个类可以为您解码它们 添加
  • 在android中通过BLE传输图像

    我使用以下代码传输 1 MB 的图像 如果在每个数据包之间实现线程延迟 则图像将成功传输 如果未设置线程延迟 则所有数据包均从BluetoothGattServer 发送 但BluetoothGattCallback 不会接收所有数据包 任
  • 从 React Native Js 代码调用 Android Native UI 组件方法

    我创建了一个 CustomView SignatureView java 它扩展了 LinearLayout 以捕获 Android Native 中的签名 并创建了SignatureCapturePackage java和Signatur
  • Android 自定义布局 - onDraw() 永远不会被调用

    public class MainActivity extends Activity Override public void onCreate Bundle savedInstanceState super onCreate savedI
  • 如何在手机缓存中保存用户名和密码

    我有一个用户登录应用程序 它需要用户的电子邮件和密码 我想将电子邮件和密码保存在手机缓存中 以便用户不必再次输入 有什么办法可以将数据保存在Android缓存中吗 我认为你需要使用SharedPreference用于在设备中使用应用程序时保
  • Camera.open()返回NULL Android开发

    我正在按照构建相机应用程序的教程进行操作http developer android com tools device html http developer android com tools device html我对 Camera o
  • glTexImage2D: 之前出错:( 0x506 内部 0x1908 格式 0x1908 类型 0x1401

    当使用 Android Studio 运行模拟器时 我在模拟器屏幕上看不到任何内容 一切都是黑色的 我得到以下事件日志 模拟器 glTexImage2D 出错了 0x506 内部 0x1908 格式 0x1908 类型 0x1401 我已经
  • Android 应用程序中的 Eszett (ß)

    我的 res layout activity 文件中的德语 字符在我的应用程序中自动转换为 ss 即使我将语言和键盘设置为德语 它仍然不会显示 Android 中可以显示 吗 edit
  • 如何检查 Android 中连接的 wifi 网络是否处于活动状态

    如何自动检查android中连接的WiFi网络上的互联网是否处于活动状态 我可以检查 wifi 是否已启用或 wifi 网络是否已连接 但我不确定如何检查互联网是否已连接 这可能吗 private boolean connectionAva
  • 如何在 Android 模块中使用 FirebaseAuth

    我正在开发一个聊天库 我想在其中显示登录用户的对话 制作该库的原因是我想将其集成到多个项目中 我现在面临的问题是FirebaseAuth表示用户尚未登录 FirebaseAuth getInstance mFirebaseApp getCu
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 使用 PhoneGap 使 Android 应用程序易于访问(对于残障人士)

    有人有过使用 PhoneGap 使 Android 应用程序可访问的经验吗 至少我们需要使我们的应用程序符合第 508 条规定 我尝试实现一些标准的辅助功能 文本框标签 向 div 添加标题属性等 但是 当在 Android 中使用 Tal
  • 在 Android 中调整可绘制对象的大小

    我正在为进度对话框设置一个可绘制对象 pbarDialog 但我的问题是我想每次调整可绘制的大小 但不知道如何调整 这是一些代码 Handler progressHandler new Handler public void handleM
  • 如何在 Viewpager 中禁用预加载下一页? [复制]

    这个问题在这里已经有答案了 如何在 Viewpager 中禁用页面预加载 I tried viewPager setOffscreenPageLimit 0 但它不起作用 用这个viewPager setOffscreenPageLimit
  • Android:监听状态栏通知

    有没有办法在状态栏被下拉时监听通知 1 用于检测状态栏变化 您可以注册一个监听器来获取系统UI可见性变化的通知 因此 要在您的活动中注册侦听器 Detecting if the user swipe from the top down to
  • Android:RecyclerView 不显示片段中的列表项

    有人可以帮我尝试让我的 RecyclerView 出现吗 如果我不在片段中实现它 就会出现这种情况 然而 当我尝试将其实现到片段中时 CarFront 中的其他 XML 代码与 RecyclerView 分开显示 我的日志中收到此错误 E
  • 在 KitKat 4.4.2 中获取 SDard 路径和大小

    我在 Google Play 上有一个设备信息应用程序 在该应用程序中我有存储信息 我知道 Android 4 4 在访问外部 SD 卡方面发生了一些变化 内部似乎没有给我带来问题 我的问题是 如何可靠地获取 KitKat 上 SD 卡的大
  • Android:AsyncTask ProgressDialog 将不会在 ActivityGroup 中打开

    我试图在轮询我的服务器时打开一个进度对话框 该类是一个 ActivityGroup 因为它嵌套在选项卡栏中 为了将视图保持在框架内 需要 ActivityGroup 这是我的 ActivityGroup 类的声明 public class
  • 如何在基本活动中使用 ViewBinding 的抽象?

    我正在创建一个基类 以便子级的所有绑定都将设置在基类中 我已经做到了这一点 abstract class BaseActivity2 b AppCompatActivity private var viewBinding B null pr
  • 在Android Studio gradle项目中使用NDK和STL

    我在将 stlport 链接到 Android Studio 中的 gradle 项目时遇到问题 使用 NDK 的 Eclipse Android 项目迁移到 Android Studio 该项目使用 STL 我有包含内容的 android

随机推荐

  • 求指数总和的解

    我正在尝试用Python numpy scipy 一切都可用 来数值求解这个方程 在这个公式中K是一个常数 f and g是取决于 E 计数器的两项 这是积分的离散表示 其中x是我正在寻找的变量 举个例子 E3 个术语是 also f E
  • 有没有比单元素数组更好的引用容器?

    Java 匿名类只能从周围方法访问变量 前提是该变量是final 因此内部类无法写入该变量 为了捕获由封闭类型创建的对象 我创建了一个final作为参考的单元素数组 final String ref new String 1 final R
  • Python从不同项目导入包

    我正在尝试从不同的项目导入包 但它无法识别我尝试从中导入的项目 我查看了这个问题的各种答案 包括python 导入另一个与本地模块名称相同的项目模块 https stackoverflow com questions 16786563 py
  • 如何创建 HTML 格式的下载链接?

    我对 HTML 有一个基本的了解 我想在我的示例网站中创建下载链接 但我不知道如何创建它 如何创建下载文件而不是访问文件的链接 在支持 HTML5 的现代浏览器中 可以执行以下操作 a href link to your download
  • Android Preferenceactivity getView

    我有这样一段代码 我想编辑我的自定义首选项布局的文本属性 但是 通过 getView 函数对对象进行的任何更改都不会影响首选项屏幕中的实际列表 有任何想法吗 我知道我无法扩展 PreferenceScreen 并且在这种情况下我无法使用任何
  • 使用 ToExpando 方法时出现问题

    您好 我尝试使用 ToExpando 解决方案在剃刀视图中使用匿名类 我使用这个解决方案 gt Razor 中的动态匿名类型导致 RuntimeBinderException https stackoverflow com question
  • 未选择链接器文件

    我正在使用链接器文件处理应用程序中的问题 发生的事情是在资源管理器选项卡中 链接器文件似乎没有被 选择 我必须提到我也有一个引导加载程序 我收到错误 944 地址 1FC02FF8h 处的数据冲突 我认为这与该错误有关 有人能帮我吗 非常感
  • Android Studio 中的 Apache POI 库错误..?

    我添加了 Apache POI 的 5 个 jar 文件 以便我可以将文本另存为 docx 文档 但我无法先运行该应用程序我在年级中遇到了 210 错误 现在我遇到了此错误有人可以帮助我吗 我按照这个例子https www tutorial
  • UDP可以重传丢失的数据吗?

    我知道该协议不支持这一点 但是对于需要一定程度的可靠性的客户端来说 在其应用程序中构建一种在发现数据包损坏时请求重传的方法是否很常见 如果客户端需要可靠性 或者有时只是some可靠性 但不是 TCP 提供的任何其他功能 例如严格的按顺序交付
  • window.top.location 与 window.location

    如何同步window top location和window location 这是设置框架父级的方法 top 到框架文档的位置 top location self location 当然 这段代码必须在 iframe 内执行 并且容易受到
  • 在 Firebase 的 onAuthStateChanged() 中使用 async/await 的最佳方法是什么?

    我在 React Native 中使用带有 async await 的 Firebase 身份验证 我正在寻找一种更好的方法来等待 firebase 函数内部 所以我的问题是在内部使用 async await 的最佳方法是什么firebas
  • 无初始延迟的去抖

    RxJS 中是否有一个运算符可以在不延迟 突发中的第一个事件 的情况下进行反跳 但会延迟 并始终发出 突发中的最后一个事件 像这样的东西 a b c d e f after awesome debounce 2 dashes 变成 a b
  • Android - 如何将上下文参数传递给方法?

    我正在尝试为我女儿开发一个简单的应用程序 但我不是专业人士 我想知道如何将上下文传递给布尔方法 我的问题是 当尝试合并下面的两个代码时 private boolean isNetworkAvailable ConnectivityManag
  • 如何使用csv列标题powershell获取xml字段值

    当我使用 for 循环然后在代码中添加值 b 时 field name eq b 然后它给出空白值而不是结果 CSVpath G 1 csv columncount Get Content CSVpath 0 split count wri
  • Python - 将字典打印为带标题的水平表

    我有一本字典 import math import random d 1 Spices math floor random gauss 40 5 2 Other stuff math floor random gauss 20 5 3 Te
  • 用于持续流式传输的 java.nio 选择器和 SocketChannel

    我目前正在使用 java nio channel Selectors 和 SocketChannels 作为应用程序 该应用程序将打开一对多连接以继续流式传输到服务器 我的应用程序有三个线程 StreamWriteWorker 对 Sock
  • 必须使用尾随返回类型的示例,因为问题无法用旧方法解决

    是否有任何情况 我们必须使用尾随返回类型 因为问题不能用旧的方式来表达 auto fn gt int 可以很容易地转换成旧的方式 int fn 我想知道 是否有一个例子 这种转变是不可能的 最直接的例子 当我们在返回类型中引用函数参数时 似
  • 如果我知道某个 HTML 元素或类的 id,如何在 Beautiful Soup 中设置值?

    如果我知道 HTML 元素或类的 id 如何在某个元素中使用 Beautiful Soup 设置值 例如我有 td td 我想设置文本恢复 就像 td RESTORE td 使用 a 找到您要修改的标签find 搜索id test Then
  • Flutter中的共享首选项无法保存和读取列表

    我使用一些共享首选项来读取和保存列表 但我得到的只是一个错误 如下所示 Launching lib main dart on iPhone 7 in debug mode Xcode build done 4 1s Tried callin
  • DocumentContract 上的 ContentResolver 查询列出所有文件,忽略选择

    我试图从具有特定 MIME 类型的目录中获取所有文件 我想要所有图像 我使用了一些示例代码 其中使用 MediaStore 作为 URI 但后来发现很难为所选目录过滤它 因为结果集中返回的 URI 的格式与我提供的 URI 的格式不同 所以