Pull to refresh

Comments 16

А зачем может понадобиться путь к корню флешке вместо Environment.getExternalStorageDirectory()?
Сейчас это не очень актуально, но в теории, карты памяти больше, чем встроенная «внешняя» память. Поэтому потенциально большую базу лучше хранить на карте памяти. Я из таких соображений стал искать альтернативу.
В настоящее время у меня LG L65. У него заявлено 4 ГБ памяти, из них пользователю доступно всего 1,5. Ставим приложения, мелодии для звонка и т.п. и остается всего 200 Мб.
UPD: Viber, к примеру, все хранит во внешней памяти. Соответственно место постоянно уменьшается.
Я думаю вайбер хранит там только объемные медиа-файлы, а не всю переписку. Может быть именно для большого количества относительно больших файлов это и актуально, но точно не для «потенциально большой базы».
1) Насколько должна быть большая база чтобы getExternalStorageDirectory() не удовлетворяло полностью? (я надеюсь вы медиа-файлы в blob-ах не храните)
2) Если база действительно большая, то она хранит огромное количество записей. Я не думаю, что стоит светить эти записи всем пользователям (даже без рута).
Согласен с Вами, моя формулировка «потенциально большой базы» не совсем корректна. В общем мы друг друга поняли.
Ух, не знал о таком. Буду иметь в виду.
Я вот тоже не понимаю, но сколько было возмущенных пользователей которые кричали чтобы игра скачивала ресурсы именно на флешку, а не в Environment.getExternalStorageDirectory() — мы пока не сделали имели тысячи единиц в отзывах из-за этого. И кстати, все вышеописанные шаманства все равно не спасают и будут экзотические девайсы в которых определить верно не получится — поэтому еще и возможность руками ввести путь добавили.
Эм… Мне кажется или специально для этого есть Expansion File?
The specific location for your expansion files is:
<shared-storage>/Android/obb/<package-name>
<shared-storage> is the path to the shared storage space, available from getExternalStorageDirectory().
<package-name> is your application's Java-style package name, available from getPackageName().

Не могу понять недовольство ваших пользователей. Вполне нормальная практика.
Недовольство очень простое — внутренней памяти на дешевом телефоне допустим 4 гигабайта — и ее постоянно не хватает, а карточку можно поставить на 32 гигабайта.

obb не помогут — на тех девайсах на которых getExternalStorageDirectory указывает на внутреннюю память при наличии SD карточки, obb тоже будут качаться на внутреннюю память
А на свежих андроидах обычное (не предустановленное) приложение может писать на SD карту?
Если без доп. прав, то приложение может создавать каталоги, файлы, но вот удалять оно не может.
Проверял на самсунге с Андройдом 4.4.4. Рута нет, конфиги не правились.
должны быть все права в «своем» каталоге: SD_CARD/Android/data/my_package
Я проверял через файловый менеджер в корне каталога. Мои телефоны все рутированные и с правленным конфигами.
/storage/sdcard0/
/storage/emulated/0/

У меня на Sony — внутренняя
Например на моем аппарате в папке /mnt/ есть папка «sdcard» — она ссылается на внешнюю память. Карты памяти в /mnt/ не примонтировано. Мне кажется, это не самый лучший способ.
Замечательный и самый лучший, на мой взгляд, вариант был бы через карту «vold.fstab». Но увы, на последних версиях андройда (с 4.3) доступ к этому файлу без рута не получить. Да и называется он по-другому, и расположен в другом месте:
For Android 4.2.2 and earlier, the device-specific vold.fstab configuration file defines mappings from sysfs devices to filesystem mount points

For Android releases 4.3 and later, the various fstab files used by init, vold and recovery were unified in the /fstab.<device> file.

Источник: source.android.com
Sign up to leave a comment.

Articles