android - getExternalStorageState.listFiles() 返回 null
问题描述
首先,我认为这个问题可能会经历数千次并且很久以前就已经解决了。但事实并非如此,我将以下帖子1、2、3和其他帖子红了,但没有任何帮助。
这是我的情况。我正在开发允许用户附加文件的聊天应用程序,为了实现这一点,我正在开发文件资源管理器,但我一直在运行NullPointerException
. 这是我的代码。
String extState = Environment.getExternalStorageState();
if(extState.equals(Environment.MEDIA_MOUNTED)) {
File sd = Environment.getExternalStorageDirectory();
File[] sdDirList = sd.listFiles();
}
在这里,我正在检查是否安装了外部存储并返回 true。但是它一直在抛出NullPointerException
,因为sd.listFiles()
return null
。
在清单中我有以下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我正在测试 android 7.0
解决方案
您是否请求读取外部存储的权限?
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
推荐阅读
- c++ - 在 main 中返回一个函数
- javascript - react-grid-layout:网格单元是如何计算的?
- winforms - 父级的前景色不适用于组框文本和组合框
- android - 如何在 android studio 项目中使用 Sketch 设计
- python - 将字符串格式的不同日期格式解析为日期格式pyspark when 子句
- amazon-web-services - 使用命令行从 AWS 成本和使用报告中获取资源 ID
- mysql - 在现有 PV 上重新部署后,Kubernetes 上的 MySQL 未启动 - '拒绝访问用户'root'@'localhost'
- android - 如何通过 Google Photos 应用程序直接打开特定路径并且 setDataAndType 不起作用
- javascript - 在单选按钮(标签)的选择中添加效果
- reactjs - 样式在样式表中不起作用