2011-02-03 5 views
3

Я пытаюсь сохранить файл из своего приложения во внешнее хранилище устройства. В частности, я пытаюсь сохранить звук.Android: сохранение файлов на SD-карту

Я следил за каждым «учебным пособием» по этому поводу, и ничто из этого не показалось мне особенно смущенным, но для меня это просто не сработает. На SD-карте вообще не создается файл, а тем более фактическая передача информации.

Я предположил, что я как-то не получаю правильный путь к карте, но независимо от того, что я пробовал, он не работает. Я попытался ввести только «/ sdcard /», а также использовать метод getExternalStorageDirectory(), среди других случайных экспериментов.

Проведя более половины дня на чем-то, что казалось бы таким тривиальным, я не могу даже думать прямо, поэтому я надеюсь, что вы извините некоторые из недостатков, которые я предоставляю, но любое предложение было бы полезно при эта точка.

+0

возможно дубликат [разрешение на запись на карту памяти] (http://stackoverflow.com/questions/2121833/permission-to-write -to-the-sd-card) –

+0

Вы пытались сохранить его в Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC). На устройствах с 2.2 и выше это папка «Музыка» на SD-карте. – Zelimir

+0

Я использую Droid X на 2.2.1 в качестве своего тестового устройства, и у меня нет папки Music на моем SD. Кроме того, когда я использую метод, который вы предложили, он пытается использовать путь/mnt/sdcard/Music. Это/mnt/должно быть там? Я думал, что это должно начаться с/sdcard /. Я пытался жестко кодировать его как sdcard/Music и даже пытался использовать файл (путь) .mkdirs(), чтобы увидеть, будет ли он создавать каталоги, но ничего не изменилось вообще. – Archaos

ответ

3

Этот ответ должен помочь: Permission to write on SD card android. Не забывайте, что вам нужно объявить в файле Android.xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

+0

У меня определенно установлены разрешения, так что это не так для меня. – Archaos

6

Вы действительно уверены, что файл не сохраняется на SD-карте? Я думал, что у меня такая же проблема. Оказалось, что я все время сохранял на карте SD правильно, но галерея не обновлялась, чтобы показать файлы, которые я только что сохранил. Используйте Astro File Manager, чтобы убедиться, что файл еще не сохранен на карте. Если это проблема, добавьте эту строку, чтобы обновить галерею:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" 
       + Environment.getExternalStorageDirectory())));