getExternalFilesDir()是私有的吗?

时间:2016-03-10 17:34:40

标签: java android

我试图存储用户可以使用我的应用程序下载的音乐文件,但我不希望它们对99%的用户公开显示(我不包括有根设备或特殊情况)

我并不担心那些通过使用特殊工具或root电话来消除音频的人。

我正在尝试理解这些文档,但我并非100%清楚getExternalFilesDir()可以用于此目的。

此外,我目前使用的库使用以下行:

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

如果我只用......替换它,这是100%可互换的吗?

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

(注意我更改了目录功能以及DIRECTORY类型(从PICTURESMUSIC

由于

3 个答案:

答案 0 :(得分:1)

请改用getFilesDir()。这是私人应用程序内存。

答案 1 :(得分:1)

  

getExternalFilesDir()是私有的吗?

没有。任何用户和任何应用(READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE)都可以访问external storage

  

如果我只是用..替换它是100%可互换的。

由于括号不平衡而无法编译。此外,值也不同(PICTURESMUSIC)。忽略这一点,它可以互换"只要它们都可以工作,并且都将用于外部存储。但是,它们不是一回事。第一个是用户的标准PICTURES目录;第二个是专用于您的应用程序独有的图片的目录。此外,前者在所有设备上都需要WRITE_EXTERNAL_STORAGE;后者只需要Android 4.3及以下版本。

  

我不希望99%的用户公开显示它们(我不包括有根设备或特殊情况)

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

答案 2 :(得分:0)

如果你放"。"在文件夹名称之前隐藏此文件夹 e.g:

String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/.myFolderName");