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 Hashmap 中的值求和 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13