5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|||||||||||
1 | |||||||||||
Получить путь к карте памяти (SD card)27.01.2015, 00:13. Показов 4358. Ответов 9
Метки нет (Все метки)
Не педелитесь методом, который возвращает путь к карте памяти, если она есть?
Нащел вот такой метод в интернете, но на некоторых устройствах работает некорректо. Например на galaxy s3 все ок, а вот на s4 не находит.
Так же нашел еще метод:
0
|
27.01.2015, 00:13 | |
Ответы с готовыми решениями:
9
Не получается получить путь к карте памяти Путь к карте памяти Путь к карте памяти в режиме отладки /storage/emulated/0/ Как получить путь к SD карте на ЛЮБОМ устройстве? |
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
27.01.2015, 09:24 | 2 |
suvorov, я как-то копался в этой теме, там много всяких хитростей, в итоге скачивание файла реализовал через DownloadManager и подзабил на тонкости, но припоминаю, что нюансы есть на разных моделях телефонов. В одном китайском телефоне даже было так, что номера SD-карт были перепутаны, и при извлечении карты памяти стало невозможно что-либо скачивать.
Можно попробовать использовать, например, Environment.getExternalStorageDirectory или Environment.getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS).
1
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
27.01.2015, 18:49 [ТС] | 3 |
Увы, но мне как раз нужно работать с картами памяти! Если что найду подходящее, выложу сюда.
Немного отходя от темы, может кто сталкивался: Создаю раздел на карте памяти, а он не создается, хотя путь правильный! Через штатный файловый менеджер создает как положено. Данный код проверял на сгс4 и сгс3. Так на сгс3 все работает.
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
28.01.2015, 09:49 | 4 |
suvorov, что такое crc4? Какой метод используете для создания раздела? Причём здесь раздел?
0
|
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
|
|
28.01.2015, 10:03 | 5 |
1
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
28.01.2015, 14:27 | 6 |
androbro, да, мне тоже так показалось.
suvorov, почитайте-ка stackoverflow, там много написано по поводу Samsung'а.
0
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
28.01.2015, 22:09 [ТС] | 7 |
CoolMind,
сгс3/4 - sgs3/4. Извиняись. Директории создаю с помощью mdirs(); Но это не работает, так как начиная с андроид 4.4, запись на карту пямяти запрещена. Нашел, как раз на stackoverflow, что можно производить запись в папку Android/data/название_пакета/. Вот только как ее создать??? mdirs() само собой не работает. Просить пользователя содать в ручную тоже не вариант.
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
29.01.2015, 10:02 | 8 |
suvorov, хорошо.
Да, mkdirs() - это правильная операция для создания папки (не раздела). В папку Android/data/название_пакета/ действительно можно записывать, она специально предназначена для этого. Раньше был разброд и шатание, каждая программка писала на карту памяти, куда взбрендит в голову её создателя. При удалении программы удаляются и данные из этой папки. Да, я согласен, что на Samsung, Nexus и многих телефонах с Android 4.3, 4.4 (судя по форумам) будут наблюдаться проблемы с картой памяти. Поэтому общим способом записи являются папки Environment.getExternalStoragePublicDirectory (с нужным параметром) и Context.getExternalFilesDir(null). Например, вы можете почитать об этом на http://stackoverflow.com/a/22426975/2914140. Этим способом записывается большинство баз данных. Вот пример: databasePath = context.getApplicationInfo().dataDir + "/databases/". Добавлено через 8 минут Добавлю, что на нерутованном устройстве внешние программы не будут иметь доступа к этой папке. Соответственно, вы не сможете, например, открыть файл внешней программой или отправить вложение по электронной почте.
1
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
29.01.2015, 22:41 [ТС] | 9 |
CoolMind,
Спасибо! Как раз вчера на ту тему наткнулся. Все работает. Метод Context.getExternalFilesDir(null) возвращает массив с путями android/data/название_пакета/. Причем, если эти разделы не были созданы, метод создает их. Работает, начиная с 4.4.
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
30.01.2015, 08:46 | 10 |
suvorov, привет!
Пожалуйста! Единственное, мне кажется, что метод более старый, API 8: http://developer.android.com/r... .String%29. Я в предыдущем сообщении немного напутал с правами доступа, они относились к папке data/data.
0
|
30.01.2015, 08:46 | |
30.01.2015, 08:46 | |
Помогаю со студенческими работами здесь
10
Получить доступ к внешней карте памяти (Android 6) Не определяется путь к SD карте Найти путь по карте до конкретного адреса Ubuntu на SD карте памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |