我试图存储用户可以使用我的应用程序下载的音乐文件,但我不希望它们对99%的用户公开显示(我不包括有根设备或特殊情况)
我并不担心那些通过使用特殊工具或root电话来消除音频的人。
我正在尝试理解这些文档,但我并非100%清楚getExternalFilesDir()
可以用于此目的。
此外,我目前使用的库使用以下行:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()
如果我只用......替换它,这是100%可互换的吗?
Environment.getExternalFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath()
(注意我更改了目录功能以及DIRECTORY
类型(从PICTURES
到MUSIC
)
由于
答案 0 :(得分:1)
请改用getFilesDir()
。这是私人应用程序内存。
答案 1 :(得分:1)
getExternalFilesDir()是私有的吗?
没有。任何用户和任何应用(READ_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
)都可以访问external storage。
如果我只是用..替换它是100%可互换的。
由于括号不平衡而无法编译。此外,值也不同(PICTURES
与MUSIC
)。忽略这一点,它可以互换"只要它们都可以工作,并且都将用于外部存储。但是,它们不是一回事。第一个是用户的标准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");