我正在尝试存储用户可以通过我的应用程序下载的音乐文件,但是我不希望它们对99%的用户公开可见(我不包括有根设备或特殊情况)

我不担心那些通过使用特殊工具或有根电话来获得音频的人们。

我正在尝试了解文档,但是对我而言,并不是100%清楚getExternalFilesDir()是否适合用于此目的。

另外,我当前正在使用的库使用以下行:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()


如果我将其替换为...,可以100%互换吗?

Environment.getExternalFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()


(注意,我同时更改了目录功能和DIRECTORY类型(从PICTURESMUSIC

谢谢

最佳答案

getExternalFilesDir()是私有的吗?


否。任何用户和任何应用程序(具有READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE)都可以访问external storage


  如果我将其替换为...,可以100%互换吗?


由于括号不平衡,因此无法编译。此外,值也不同(PICTURESMUSIC)。忽略它们是“可互换的”,只要它们都可以工作并且都在外部存储上即可。但是,它们不是同一回事。第一个是用户的标准PICTURES目录。第二个是专用于图片的目录,该目录对于您的应用程序是唯一的。另外,前者在所有设备上都要求WRITE_EXTERNAL_STORAGE;后者仅适用于Android 4.3及更低版本。


  我不希望99%的用户可以公开看到它们(我不包括植根设备或特殊情况)


使用internal storage(例如,getFilesDir())。

10-04 19:53