Libgdx сохранить / загрузить файл во внешнее хранилище Android

Я пытаюсь сохранить файл во внешнем хранилище Android (sd-карта). Я использовал этот учебник:

http://www.youtube.com/watch?v=t0PtLexfBCA

чем и этот код

https://github.com/libgdx/libgdx/blob/master/demos/superjumper/superjumper/src/com/badlogicgames/superjumper/Settings.java

это работает на моем компьютере. но не повезло на андроиде.

пожалуйста, помогите. спасибо.


person Methnani Bilel    schedule 29.06.2013    source источник
comment
На Android куда попадают файлы? А какая версия Android у вас стоит?   -  person P.T.    schedule 29.06.2013
comment
‹uses-sdk android:minSdkVersion=8 android:targetSdkVersion=17 /›   -  person Methnani Bilel    schedule 29.06.2013
comment
Убедитесь, что вы добавили файл WRITE_EXTERNAL_STORAGE в AndroidManifest.   -  person Andy Res    schedule 29.06.2013
comment
Я тестировал его на устройствах Android 2.2, 4.1 и 4.0.   -  person Methnani Bilel    schedule 29.06.2013
comment
да, я поставил это разрешение   -  person Methnani Bilel    schedule 29.06.2013
comment
По крайней мере, на моем устройстве я должен отключить общий доступ к файлам через USB, если я хочу, чтобы мои приложения имели доступ к SD-карте. Затем я могу читать/писать с помощью своего приложения. Чтобы проверить с моим ПК, мне нужно повторно включить общий доступ к USB.   -  person jedwards    schedule 29.06.2013


Ответы (1)


Что вы можете сделать, так это получить абсолютный путь к внешнему хранилищу, используя код для конкретной платформы в вашем основном проекте, а затем сохранить файл по абсолютному пути.

Чтобы реализовать код для конкретной платформы, используйте эту ссылку https://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific и получить путь к внешнему хранилищу в проекте Android, используя следующий код

String sdcardpath = Environment.getExternalStorageState().getAbsolutePath();

Сохраните файл по абсолютному пути SD-карты устройства.

Убедитесь, что вы предоставили разрешение WRITE_EXTERNAL_STORAGE. Также убедитесь, что внешнее хранилище существует на устройстве или нет, иначе оно будет нормально работать на устройствах с SD-картой и не будет работать на других устройствах.

person Vikalp Jain    schedule 30.06.2013
comment
Можно ли загрузить внешний/внутренний файл изображения (который не был встроен в приложение) через LibGdx? будет ли он по-прежнему использовать инструменты Android для декодирования растровых изображений? Или сделает это самостоятельно? - person android developer; 23.02.2014
comment
@androiddeveloper да, можно загрузить любой внешний/внутренний файл через Libgdx. пока не узнаешь весь его путь. Также вам не нужно беспокоиться о декодировании растровых изображений, все файлы изображений будут загружаться напрямую, пока они не будут совместимы с ним. Под совместимостью я подразумеваю, что если ваши приложения используют open gl 1.0, и вы явно не определили его для использования изображений, которые не являются степенью 2, вы не сможете их загрузить. Поэтому убедитесь, что ваше внешнее изображение совместимо. - person Vikalp Jain; 24.02.2014
comment
Как вы загружаете изображения из внешнего хранилища через libGdx, и использует ли он java-кучу в любое время для его загрузки, или все хранится в мире C/C++ с самого начала? - person android developer; 24.02.2014
comment
Строка sdcardpath = Environment.getExternalStorageState().getAbsolutePath(); Не работает Вместо этого используйте следующую строку sdcardpath = Environment.getExternalStorageDirectory().getAbsolutePath(); - person Ankit Gupta; 23.03.2017