我正在尝试从外部存储中获取一些媒体。活动开始时,我正在检查是否具有读取和写入外部存储的权限。当然,对于第一次启动我没有,所以我要这些权限。然后,如果授予了权限,我将从ContentProvider
的媒体父目录中获取数据,然后尝试使用list()
类中的File
方法列出这些目录中的每个文件。在解释问题出处之前,让我展示一下操作顺序:
ContentProvider
查找父目录。list()
列出每个目录中的文件。现在很奇怪:
list()
始终返回null
。list()
正常工作,而不是null
。对话框确认后,我似乎没有获得许可。我必须再次打开应用程序才能获取它。有趣的是,它仅在仿真器(我尝试构建一些仿真器)上表现出这种行为,在我的设备上运行良好(list()
在首次启动时也不返回null
)。