Каков внутренний путь хранения для Samsung Galaxy S3 с ОС 4.1.2?

Путь внутренней памяти для Samsung Galaxy S3 с 4.1.2 продолжает меняться.

/mnt/sdcard0/ /mnt/sdcard/ /storage/sdcard0/ /storage/sdcard/

В этот телефон не вставлена ​​внешняя карта. И случайным образом я получаю указанные выше пути в приложении файлового менеджера Astro, а также logcat.

На самом деле мое приложение для Android передает файл с одного мобильного телефона на другой, используя технологию Wifi-Direct. Когда я перехожу с Samsung Galaxy S3 Mini на Samsung Galaxy S3, он работает хорошо. Но обратного не происходит, потому что он говорит, что «файл недоступен в определенном каталоге», даже если файл существует.

Пример журнала из logcat: D/fileUri после подстроки >>>( 7422): /mnt/sdcard/Download/flash_transfer.apk D/sender socket fileName>>>( 7422): flash_transfer.apk E/wifidirectdemo( 7422): /mnt/sdcard/Download/flash_transfer.apk: открыть не удалось: ENOENT (Нет такого файла или каталога)

Но иногда показывает /storage/sdcard0. Не уверен, как часто он меняется, из-за чего передача файлов прерывается.

Какой правильный путь для внутренней SD-карты для Android 4.1.2?


person SAMBA    schedule 16.11.2013    source источник


Ответы (1)


Путь внутренней памяти для Samsung Galaxy S3 с 4.1.2 продолжает меняться.

Это внешнее хранилище, а не внутреннее, с с точки зрения Android SDK< /а>.

Какой правильный путь для внутренней SD-карты для Android 4.1.2?

На большинстве устройств Android нет «внутренней SD-карты».

Предполагая, что вы имеете в виду внешнее хранилище, корень внешнего хранилища находится по пути, возвращаемому Environment.getExternalStorageDirectory(). Если эти файлы должны находиться там, где пользователь ожидает «загрузки», вы можете найти это место на любом устройстве, используя Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);. Никогда жестко кодировать пути в Android.

person CommonsWare    schedule 16.11.2013
comment
Тогда, когда мы говорим о Samsung Galaxy S3 с 16 ГБ памяти, это означает внутреннее хранилище или внешнее хранилище. Также, когда я вставляю карту micro SD на 8 ГБ, какой это тип памяти и как они классифицируются и называются? - person SAMBA; 16.11.2013
comment
@SAMBA Эти 16 ГБ являются внешним хранилищем для Android. Для SD-карты нет стандартизированного способа определить ее путь, и, учитывая позицию Google в отношении SD-карты, она, вероятно, никогда не будет стандартизирована. - person Kai; 16.11.2013
comment
В предоставленной вами ссылке указано, что внутреннее хранилище хранит личные данные в памяти устройства. Внешнее хранилище Храните общедоступные данные в общем внешнем хранилище. - person SAMBA; 16.11.2013
comment
Основная проблема заключается в том, что иногда я получаю /mnt/sdcard0/, а иногда /storage/sdcard0/, когда вижу путь к файлу с помощью приложения Astro File Manager. Но когда я использую приложение File Manager, я постоянно получаю /storage/sdcard0/. Даже если файл существует, он говорит, что файл недоступен в определенном каталоге. - person SAMBA; 16.11.2013
comment
Вопрос закрыт. Он работает как с /storage/sdcard0/, так и с /mnt/sdcard0/. - person SAMBA; 16.11.2013