Есть ли какое-либо соглашение для Android SD-карт?
После того, как я установил много приложений и сам собрал несколько приложений, я уверен, что многие люди задавались вопросом об этом. Если я просматриваю свою SD-карту, она выглядит совершенно ужасно, и очень трудно найти папки, которые являются моими для размещения музыки / видео / изображений между всеми папками для различных приложений.
Есть ли здесь какие-то соглашения, что мы, разработчики, должны пытаться поместить их приложения в одну базовую папку, или Google полностью об этом забыл?
2 ответа
Из справки:
Приложения не должны напрямую использовать этот каталог верхнего уровня во избежание загрязнения корневого пространства имен пользователя. Любые файлы, которые являются частными для приложения, должны быть помещены в каталог, возвращаемый Context.getExternalFilesDir, который система позаботится об удалении, если приложение будет удалено. Другие общие файлы должны быть помещены в один из каталогов, возвращаемых getExternalStoragePublicDirectory(String).
Я расширяю класс Application в своем приложении и получаю следующее...
protected static File myAppDir = null;
Затем в onCreate() (в приложении)...
if (myAppDir == null)
myAppDir = new File(getExternalFilesDir(null).getAbsolutePath());
Это автоматически создает /mnt/sdcard/Android/data/com.mycompany.myApp/files, если он не существует. Вы можете предоставить другие параметры, отличные от 'null', для getExternalFilesDir() для таких вещей, как изображения, видео и т. Д.