Android公共电影目录是空的,即使它不是

时间:2016-04-26 21:24:43

标签: android

我现在对Android非常沮丧。

我正在尝试访问Environment.DIRECTORY_MOVIES

定义的目录中的文件

debug

从调试信息中可以看出,它是一个目录,路径为/storage/emulated/0/Movies。但它不包含任何文件。

如果我使用adb shell列出目录中的文件,我会得到以下结果:

adb shell output

很明显,该目录中的文件。我认为这可能是一个权限问题,所以我将这些添加到我的清单中:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

但结果仍然相同。我做错了什么?

1 个答案:

答案 0 :(得分:1)

错过Android 6.0运行时权限的确切影响各不相同。通常情况下,您会收到SecurityException,这样可以更清楚地了解正在发生的事情,因为异常消息会告诉您缺少的内容。

在这种情况下,显然Java文件I / O内容会占用SecurityException,或者不会引发这样的异常,这就是为什么你从listFiles()得到奇数值的原因。

您的选择要么退回targetSdkVersion 23以下,要么实施用户权限请求逻辑(例如ActivityCompat.requestPermissions())。