Проблемы с SD-картой Android

У меня есть несколько проблем с разработкой APP и использованием внешней SD-карты.

  • Первая проблема заключается в том, что я проверяю, установлена ​​ли карта SD. Эта функция возвращает истину, даже если в нее не вставлена ​​SD-карта. Я использовал / попробовал следующий код:

    • https://stackoverflow.com/a/12721994
    • http://tsicilian.wordpress.com/2012/04/24/android-persistence-external-storage-sd-card/

От developer.android.com

Каждое Android-совместимое устройство поддерживает общую «внешнюю память», которую вы можете использовать для сохранения файлов. Это может быть съемный носитель (например, SD-карта) или внутреннее (несъемное) хранилище. Файлы, сохраненные во внешнем хранилище, читаются в мире и могут быть изменены пользователем, когда они позволяют USB-накопителю передавать файлы на компьютер.

Может быть, это проблема?

Я использую LG L5 (E610)

Я добавил правильное разрешение на файл манифеста.

Моя другая проблема может быть связана с этой проблемой

Любая помощь очень ценится. Спасибо.

Solutions Collecting From Web of "Проблемы с SD-картой Android"

Ты сказал:

Первая проблема заключается в том, что я проверяю, установлена ​​ли карта SD. Эта функция возвращает истину, даже если в нее не вставлена ​​SD-карта.

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

В Android вы найдете 2 вида памяти:

  • Система одна, всегда доступная, с высокой степенью защиты: ваше приложение может получить доступ только к небольшой части, выделенной для вас, а другие приложения не могут читать ваши данные.
  • Общий, часто называемый общедоступным, внешним или «sdcard». Каждое приложение имеет доступ для чтения / записи ко всему. Но он не всегда доступен, так как вы можете «установить» его на свой компьютер, имея эффект размонтировать его в андроиде и, следовательно, скрывать его. (Но только до android 3.X).

В дикой природе вы найдете 3 вида устройств:

  • На некоторых устройствах эта общая память находится на кристалле, спаянном внутри устройства. Поэтому имя sdcard недостаточно. Но все же путь может быть «/ sdcard»
  • На других устройствах эта общая память находится на реальной SD-карте, которую вы можете удалить.
  • На некоторых других устройствах эта память предназначена для частица на чипе, а для другой части – на вашей SD-карте.

Основываясь на том, что вы сказали, я думаю, что вы на третьем устройстве. Таким образом, ваша физическая SD-карта будет найдена в этом виде пути: /mnt/sdcard/external_sd/ . К сожалению, это специфично для устройства, я не думаю, что в Android API есть что-то, чтобы получить этот путь.

Кроме того, имейте в виду, что, начиная с Android 3.X, нам больше не нужно «монтировать» эту разделяемую память. Таким образом, ваша общая память всегда будет доступна для Android, поскольку мы теперь используем протокол MTP.

Вот почему isExternalStorageAvailable () возвращает true, даже если ваша SD-карта удалена.

Получил это исправлено, была собственная проблема.

Спасибо всем за помощь ..