Unable to get files from folder with .nomedia file or hidden folder in Android 11(无法从Android 11中包含.nomedia文件或隐藏文件夹的文件夹中获取文件)
问题描述
我要获取WhatsApp的.Status文件夹中的所有文件。在android10之前,我会完美地获取所有状态文件。但在Android 11上,由于新的限制,当我编写如下代码时:
File(Environment.getExternalStorageDirectory().absolutePath + File.separator + "Android/media/com.whatsapp/WhatsApp/Media/.Statuses").listFiles()
我总是得到0个文件。而我正在成功获取此路径上的其他文件夹文件";Android/media/com.whatsapp/WhatsApp/Media/";。
我现在面临的两个问题:
- 如果文件夹隐藏,则在Android 11中,listFiles()对该文件夹返回0。
- 如果文件夹未隐藏,但包含一个";.nomedia";文件,则在Android 11中,listFiles()也会对该文件夹返回0。
如何获取Android 11中的所有WhatsApp状态文件?
由于Google策略,我不想对其使用MANAGE_EXTERNAL_STORAGE权限。感谢您推荐答案
在android 11中有访问隐藏目录的方法,其中有两种方法:
<>存储访问框架(SAF),在该框架中,您可以将用户带到特定目录,并向用户请求访问目录文件权限,以及访问其中文件的方式(学习SAF)。
您可以对该隐藏文件夹使用文件观察器,无论何时从该隐藏目录创建、修改或删除任何文件,您都会获得隐藏文件夹中该特定文件的完整路径。&;一旦您有了完整路径,您就可以访问该文件。
这篇关于无法从Android 11中包含.nomedia文件或隐藏文件夹的文件夹中获取文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:无法从Android 11中包含.nomedia文件或隐藏文件夹的文件夹中获取文件
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- 转换 ldap 日期 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01
- 获取数字的最后一位 2022-01-01