Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) 是只读的

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) is readonly

我尝试通过以下方式从 android public 音乐目录中恢复:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);

在我的 android 4.2 设备上它是 /storage/emulated/0/Music 并且运行良好。

在 android 5.0.1 设备上它是 /storage/sdcard0/Music 并且是只读的。

为什么?我知道在 4.4 时被限制写入内部存储器但它是 public 导演,不是吗?

我不确定,但在 developer.android.com 上说:

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

Beginning with Android 4.4, these permissions are not required if you're reading or writing only files that are private to your app.

可能非私人位置(对您的应用)仍然需要此权限?

顺便说一下,尽管有此声明,但我必须添加此权限才能在 Android 5.0.1 上的应用程序中正常运行。

问题是设备安全策略阻止 emulated/0/Music(模拟文件系统)对非系统签名应用程序访问音乐目录。可以通过 /data/0

访问