Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.83
RomanenkovDV
0 / 0 / 0
Регистрация: 16.08.2012
Сообщений: 6
#1

Internal storage - Программирование Android

28.08.2012, 15:48. Просмотров 6983. Ответов 7
Метки нет (Все метки)

У меня есть 2 телефона: Samsung ace2 и HTC One V.
На первом стоит андроид 2.3, на втором 4.0.3

Мне нужно писать данные в файл. Этот файл располагается на внешней SD карте, или, в случае ее отсутствия, в памяти телефона. Под памятью телефона я подразумеваю не ту, которая отведена под систему, и где располагается мое приложение, путь к который я могу получить методом Context.getFilesDir(), а ту, куда пишет, например, фотки камера.

И тут я увидел что в этих телефонах по разному смонтирована эта внутренняя память. т.е. У HTC она смонтирована в /mnt/emmc, а у Samsung'а в /mnt/sdcard. При подключении внешней SD карты У HTC она монтируется в /mnt/sdcard, а у Samsung'а в /mnt/sdcard/external_sd.

Мне немного не понятно почему самсунг решил так делать, ибо из-за такого решения я не могу узнать стандартным методом всунута ли внешняя карта. Приходится изворачиваться вызовом системной команды и распарсиванием ее вывода.

Собственно мой вопрос: является ли такой способ монтирования, как у HTC, стандартным для большинства android устройств и есть ли способ программно получить путь до /mnt/emmc?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2012, 15:48     Internal storage
Посмотрите здесь:

Как и куда сохранить в Internal Storage? - Программирование Android
Нужно сохранить данные которые будут досупны после переустановки приложения или очистки данных приложения пользователем. External...

WebView и html файлы в Internal Storage - Программирование Android
С html файлами, находящимися в assets, можно работать из WebView, переходя по относительным сылкам от одного к другому. Мне нужно, чтоб...

Дублируются файлы в папках и в /storage/emulated/0 и /storage/emulated/legacy — почему? - Программирование Android
Почему дублируются папки в Андроид и можно ли это как-то предотвратить? Андроид 5.1 И можно ли удалить из legacy - проблем точно не...

Не виден файл сохраненный в /storage/emulated/0/papka - Программирование Android
До сего дня я был уверен что файл сохраненный /storage/emulated/0/papka/foto.jpg будет виден во внутренней (доступной через подключение по...

Android: internal error - Программирование Android
Создал пустой проект под андроид. При попытке компиляции в эклипсе появляется вот такое ругательство. Заметил, что появилось после того...

Eclipse proguard public class android.support.v7.internal.widget.ActionBarView.HomeView - Программирование Android
Добрый день. Сейчас изучаю разработку под андроид. Споткнулся на следующей ошибке This class should be public...

Раздел памяти приложений(память в которую устанавливаются приложения) называется Internal Storage верно? - Android
Раздел памяти приложений(память в которую устанавливаются приложения) называется Internal Storage верно??

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
28.08.2012, 16:23     Internal storage #2
Java
1
2
File externalStorage = Environment.getExternalStorageDirectory();
externalStorage.getAbsolutePath()
http://developer.android.com/referen...irectory%28%29

В чем проблемы ???
RomanenkovDV
0 / 0 / 0
Регистрация: 16.08.2012
Сообщений: 6
28.08.2012, 16:24  [ТС]     Internal storage #3
Так я получу путь к внешней SD-карте, а мне нужно к внутренней.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.08.2012, 23:55     Internal storage #4
вытащите внешнюю)

Добавлено через 2 минуты
Цитата Сообщение от RomanenkovDV Посмотреть сообщение
Мне немного не понятно почему самсунг решил так делать
что бы у тебя работали приложения, которые отказываются работать без карты.

Добавлено через 13 минут
и вообще, понятие sd-карта подразумевает именно внешнюю память,то что вы в самсунге назвали внутренней sd-картой, это всего лишь эмуляция карты за счет внутренней памяти(что бы работали приложения требующие sd карту).
emmc - это чип внутренней памяти.

ну это поверхностно я проанализировал за 2 минуты, могу в чем-то ошибаться, копнете глубже - расскажете нам подробнее)

Добавлено через 8 минут
взять те же фотки камеры про которые вы упомянули, в девайсов, с которыми я работал, без внешний карты вообще фотки не делаются, за исключениям девайса в котором была система как у вашего самсунга, а про emmc мне особо не известно, не вникал...
RomanenkovDV
0 / 0 / 0
Регистрация: 16.08.2012
Сообщений: 6
29.08.2012, 10:53  [ТС]     Internal storage #5
Значит самсунг не единственный кто так сделал? Мне именно это важно. Просто мне нужно как-то развязать эту ситуацию. Допустим мое приложение будет работать на разных телефонах, где по разному смонтирована память. Я могу зацепиться за, скажем, модель телефона, если я уверен что такая система только на этой модели, или за производителя, если, например, только самсунг делает так как он делает, или за версию андроида, если например, 2.3 монтируется так, а в 4.0 сяк)

Добавлено через 40 минут
Идея в голову пришла от куда не ждали) В общем если в андроидовской консоле попросить df, то она вернет список всех смонтированных устройств, после чего, можно пройтись по всем устройствам командой ls -l и узнать где мне можно писать, а где нет. и, после, если вдруг, предложенный вначале мною путь будет отсутствовать в устройстве, то представится возможность предложить пользователю самому выбрать из предложенных.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2012, 20:20     Internal storage #6
Я не понимаю какого эффекта вы хотите добиться... какова задача?
RomanenkovDV
0 / 0 / 0
Регистрация: 16.08.2012
Сообщений: 6
30.08.2012, 10:57  [ТС]     Internal storage #7
Мне нужно чтобы приложение писало данные в файл. По умолчанию, она пишет на SD, а если ее нет, то в память телефона. И так, как SD смонтирована на разных телефонах по разному, и, нельзя программно узнать путь ни до SD(Это относится к самсунгу) ни до внутренней памяти приходится изворачиваться с системными командами и просить пользователя выбрать из предложенных вариантов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2012, 19:30     Internal storage
Еще ссылки по теме:

Сложное наследование (sealed internal а-ля protected internal) - C#
Приветствую Вас и прошу оказать содействие Вопрос связан с наследованием. Есть 2 тяжелых случая: 1й: Есть 2 класса A1 и A11:A1,...

Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.ast.ReferenceExpr - JAVA IDE
Я новичок. Пробую пока решать простенькие задачки. Работаю в Eclipse. Столкнулся с такой ситуацией. Ввожу часть кода, появляется...

Получить доступ к методам "internal static" находящимся в класе "internal static class" - C#
Спасибо что заглянул. Суть вопроса, не могу понять как вызвать метод в защищённом классе, с публичными классами и приватными методами в...

Local Storage - PHP БД
Пример: есть интернет-магазин, без регистрации. Добавляем товары в корзину. Смотрим в веб-консили - сессий нет, куи нет. Есть только Local...

Storage durations - C++
Страшно обилие реализаций абстракции и правил их применения :) Лямбды, насколько я помню - это объекты (анонимные функтоуры?), создаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.08.2012, 19:30     Internal storage #8
телефон:
getFilesDir()
Gets the absolute path to the filesystem directory where your internal files are saved.
getDir()
Creates (or opens an existing) directory within your internal storage space.

SD:
getExternalFilesDir()
Yandex
Объявления
30.08.2012, 19:30     Internal storage
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru