Android не сохраняет данные на карту Micro SD

Внутренней памяти устройства Android часто бывает недостаточно, поэтому пользователям приходится хранить много данных на картах micro SD. Но что делать, если ваш Android не сохраняет загруженный вами контент (приложения, изображения, музыку и другие файлы) на карту памяти?

Проблемы, связанные с картой памяти

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

  1. Убедитесь, что на устройстве хранения есть свободное место. Откройте «Хранилище» в настройках телефона или подключите устройство к ПК.
  2. Если есть свободное место, но вы не можете на нем ничего сохранить, проверьте файловую систему карты памяти. Флэш-память для Android должна быть отформатирована в FAT32. Вы можете сделать это на своем ПК/ноутбуке или прямо на телефоне.
  3. Zoom
  4. Убедитесь, что на запоминающем устройстве нет аппаратных сбоев. Если другая карта памяти с аналогичными параметрами и файловой системой работает нормально, причину следует искать в устройстве хранения.

Ваша карта памяти может быть несовместима с вашим смартфоном, например, иметь большую емкость, чем допустимая для вашей конкретной модели телефона. Если объем флеш-памяти превышает определенное значение (32 ГБ, 64 ГБ, 128 ГБ и т. Д.), Смартфон не может обнаружить карту, поскольку он не поддерживает эту емкость. В этом случае единственный выход — использовать другую карту micro SD меньшей емкости.

Если карта не обнаружена, следует обратиться в сервисный центр. В вашем телефоне могут быть аппаратные сбои, которые не позволяют ему работать с внешними устройствами памяти.

Неправильная папка в браузере

Если проблемы с сохранением возникают при загрузке файлов в браузер, вы должны проверить папку назначения. Он может быть указан неправильно, чтобы браузер не мог понять, как сохранять изображения, музыку, видео и другой контент. В качестве примера возьмем UC Browser:

  1. Откройте «Загрузки» в главном меню.
  2. Нажмите «Настройки».
  3. В поле «Путь загрузки» укажите папку на карте памяти.

Zoom

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

Файлы не могут быть перенесены на карту памяти

Чаще всего это относится к встроенным приложениям Android. Их можно хранить только во внутренней памяти; иначе смартфон работать не сможет. Однако любое стороннее приложение можно перенести на карту micro SD.

  1. Откройте настройки Android и перейдите в «Приложения».
  2. Найдите программное обеспечение вы хотите перенести на карту памяти все файлы.
  3. Нажмите «Хранилище» — «Изменить».

Zoom

Если кнопка неактивна, это означает, что приложение не может быть перенесено. Если есть сообщение« Перенести в телефон »вместо« Перенести на SD », это означает, что файлы программного обеспечения уже сохранены на карте памяти.

Настройки для переноса файлов на карту памяти пропали

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

Этот параметр предусмотрен не всеми моделями и производителями. Проверьте его на своем устройстве:

  1. Откройте настройки Android.
  2. Перейдите в «Хранилище».
  3. В поле «Место установки» или «Память по умолчанию» выберите «SD».

Zoom

Когда есть Нет настройки

Если вы не можете установить место по умолчанию для сохранения файлов, сами приложения помогут. В том же браузере Samsung «Интернет» есть опция установки места хранения:

Zoom

Проверьте приложение, из которого вы собираетесь сохранять файлы, можете ли вы выбрать место хранения в настройках. Если он недоступен, вам придется вручную перенести файлы из внутренней памяти на карту microSD.

Чтобы управлять файлами и их местом хранения, может быть полезно установить файловый менеджер такие как ES File Manager. Это позволяет быстро переносить целые папки из внутренней памяти на микро SD.

Android не сохраняет данные на карту Micro SD

3,8 (76%) 5 голосов

Похожие сообщения:
  1. Android не обнаруживает карту MicroSD (карту флэш-памяти).
  2. Android не сохраняет фотографии из приложений
  3. Android не обнаруживает SIM-карту
  4. Android не загружается с экрана с логотипом
  5. Невозможно обновить прошивку Android по воздуху


Android не сохраняет на SD-карту

Я хочу сохранить текстовый файл на SD-карту, которую я вставил в свой HTC One M8 под управлением Lollipop. Однако когда я запускаю этот код, он вместо этого сохраняется во внутренней памяти.

  String FILENAME = "mysavefile.txt";  Файл файл = новый файл (Environment.getExternalStorageDirectory (), FILENAME);  если (isExternalStorageWritable ()) {errorSD.setVisibility (View.INVISIBLE);  попробуйте {FileOutputStream fos = new FileOutputStream (файл, ложь);  fos.write (allInformation.getBytes (), 0, 81);  фос. Закрыть();  SuccessSubmissionToast ();  } catch (FileNotFoundException e) {e.printStackTrace ();  errorSD.setVisibility (View.VISIBLE);  } catch (IOException e) {e.printStackTrace ();  }  

Он должен сохраняться в

 /storage/ext_sd  

но вместо этого он сохраняется в

 /storage/emulated/0  

Затем я попытался вручную ввести местоположение моей SD card, чтобы посмотреть, сработает ли это, но в итоге возникло исключение FileNotFoundException

  File file = new File ("/storage/ext_sd", FILENAME);  

Изменить: я считаю, что проблема в том, что существует несколько внешних хранилищ. Один постоянный, а другой временный. Вопрос в том, как получить доступ ко второму.


Прежде всего, нам нужно понять, в чем разница между внутренним хранилищем и внешним хранилищем (также известным как Основное внешнее хранилище) и Вторичное внешнее хранилище?

Внутреннее хранилище: это хранилище, которое недоступно для пользователя, кроме как через установленные приложения (или путем рутирования своего устройства). Пример: data/data/app_packageName

Основное внешнее хранилище: во встроенном общем хранилище, которое «доступно для пользователя, подключив USB-кабель и подключив его как диск на главном компьютере «. Пример: когда мы говорим Nexus 5 32 ГБ.

Secondary External Storage: Съемное хранилище. Пример: SD-карта.

  getExternalStorageDirectory ()  

Он вернет путь к каталогу основного внешнего хранилища

Для доступа к съемному SD (вторичному внешнему хранилищу) есть следующие API:

getExternalFilesDirs (), getExternalCacheDirs (), и getExternalMediaDirs ()

Дополнительную информацию см. в документации


1

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

  final String APP_EXTERNAL_CACHE = "Android" + File.separator + "data" + File.separator + getPackageName () + File.separator + "cache";  if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT) {for (File file: getExternalCacheDirs ()) {if (file! = null) {String mountPoint = file.getAbsolutePath (). replace (APP_EXTERNAL_CACHE, "")  ;  if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) {if (Environment.isExternalStorageRemovable (файл)) {Log.d (TAG, «съемный внешний» + file.getAbsolutePath ());  } if (Environment.isExternalStorageEmulated (файл)) {Log.d (TAG, "эмулированный внутренний" + file.getAbsolutePath ());  }} else {if (mountPoint.contains ("emulated")) {Log.d (TAG, "emulated internal" + mountPoint);  } else {журнал. d (TAG, «съемный внешний» + mountPoint);  }}}}}  

И объявите соответствующее разрешение в манифесте.

     

Улучшите этот ответ
отредактировано 25 марта 2015 в 07:59
ответил 25 марта ’15 в 06:55
добавить комментарий |

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

  final String APP_EXTERNAL_CACHE = "Android" + File.separator + "data" + File.separator + getPackageName () + File.separator + "  кеш »;  if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT) {for (File file: getExternalCacheDirs ()) {if (file! = null) {String mountPoint = file.getAbsolutePath (). replace (APP_EXTERNAL_CACHE, "")  ;  if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) {if (Environment.isExternalStorageRemovable (файл)) {Log.d (TAG, «съемный внешний» + file.getAbsolutePath ());  } if (Environment.isExternalStorageEmulated (файл)) {Log.d (TAG, "эмулированный внутренний" + file.getAbsolutePath ());  }} else {if (mountPoint.contains ("emulated")) {Log.d (TAG, "emulated internal" + mountPoint);  } else {Log.d (TAG, "съемный внешний" + mountPoint);  }}}}}  

И объявите соответствующее разрешение в манифесте.

     

1

Я хочу сохранить текстовый файл на SD-карту, которую я вставил в свой HTC One M8 под управлением леденца на палочке

Вы можете попробовать getExternalFilesDirs () , getExternalCacheDirs () и getExternalMediaDirs () в Context . Обратите внимание на форму множественного числа в имени метода. Для этих методов, если они возвращают более одной записи, вторая и последующие должны быть на съемном носителе, указывая на каталоги, которые вы можете читать и писать без какого-либо конкретного разрешения (например, WRITE_EXTERNAL_STORAGE ).

За пределами этих стран, для устройств с Android 4. 4+, у вас нет доступа к съемному хранилищу.

Улучшить этот ответ
ответил 25 марта ’15 в 10:31
добавить комментарий |

Я хочу сохранить текстовый файл на SD-карту, которую я вставил в свой HTC One M8 с запущенным леденцом на палочке

Вы можете попробовать getExternalFilesDirs () , getExternalCacheDirs () и getExternalMediaDirs () в Context . Обратите внимание на форму множественного числа в имени метода. Для этих методов, если они возвращают более одной записи, вторая и последующие должны быть на съемном носителе, указывая на каталоги, которые вы можете читать и писать без какого-либо конкретного разрешения (например, WRITE_EXTERNAL_STORAGE ).

За пределами этих мест для устройств, поставляемых с Android 4.4+, у вас нет доступа к съемному хранилищу.


-1

Я думаю, это из-за того, что HTC изменил точку монтирования SDCard, вы должны попробовать adb shell ls -l , чтобы узнать, по какому пути смонтирована SD-карта.

Например, в nexus 4:

  lrwxrwxrwx root root 2015-03-24 18:26 sdcard ->/storage/emulated/legacydrwxr-x - x root sdcard_r 24.03.2015 18:26 storage  

и убедитесь, что это не ссылка: ls -l/storage/emulated/legacy

  lrwxrwxrwx r  oot root 24.03.2015, 18:26 legacy ->/mnt/shell/emulated/0  

Путь /mnt/shell/emulated/0 — это фактически путь к SD-карте.

Попробуйте прочитать Как я могу получить путь к внешней SD-карте для Android 4.0+? тоже, это может вам очень помочь.

ОБНОВЛЕНИЕ

Я пробовал этот код:

  String test = "/storage/emulated/legacy"; //работа//String test = "/mnt/shell/emulated/legacy"; //не работает File sdDir = new File (test);  if (sdDir.exists ()) {Файл файл = новый файл (тест, "test.sdcard");  попробуйте {file.createNewFile ();  } catch (IOException e) {e.printStackTrace ();  }}  

Итак, вам лучше попробовать каталоги /storage/emulated/* , чтобы узнать, какая именно ваша SD-карта.

Улучшите этот ответ
отредактировано 23 мая ’17, 12:16
Сообщество ♦
111 серебряных значков
ответил 25 марта 2015, 02:28
  • На самом деле, нет, вы не можете использовать оболочку ADB, чтобы найти, где что-то смонтировано для приложений, потому что крепления разные для ADB против приложений. Но вы можете использовать приложение файлового менеджера или эмулятор терминала, потому что они (по крайней мере, пока) в целом одинаковы для разных приложений. — Крис Стрэттон, 25 марта 2015, в 2:29
  • Я использовал файловый менеджер и обнаружил, что/storage/ext_sd находится там, где находится SD-карта. /storage/emulated/0 не является SD-картой. Я знаю это, потому что я удалил SD-карту, и она все еще была там, в то время как/storage/ext_sd исчез. — jtreiner, 25 марта 2015, в 02:34
  • Это может помочь в зависимости от ваших целей, т. е. это ответ для данной версии Android на данном устройстве. Но ни в коем случае это не переносной ответ. Вы также можете обнаружить, что у вас нет разрешения на доступ к нему таким образом. — Крис Стрэттон, 25 марта 2015, в 2:38
  • Для меня есть два файла в/storage/emulated/. 0 и наследие. Но оба они приводят к одному и тому же, ни к SD-карте. — jtreiner 25 мар. ’15 в 4:05
добавить комментарий |

Я думаю, это потому, что HTC изменила точку монтирования SDCard, вам следует попробовать adb shell ls -l , чтобы узнать, по какому пути смонтирована SD-карта.

Например, в nexus 4:

  lrwxrwxrwx  root root 24.03.2015, 18:26 sdcard ->/storage/emulated/legacydrwxr-x - x root sdcard_r 24.03.2015 18:26 storage  

и вы следует убедиться, что это не ссылка: ls -l/storage/emulated/legacy

  lrwxrwxrwx root root 2015-03-24 18  : 26 legacy ->/mnt/shell/emulated/0  

Путь /mnt/shell/emulated/0 на самом деле является путем SDCard.

Попробуйте прочитать Как я могу получить путь к внешней SD-карте для Android 4.0+? тоже, это может вам очень помочь.

ОБНОВЛЕНИЕ

Я пробовал этот код:

  String test = "/storage/emulated/legacy"; //работа//String test = "/mnt/shell/emulated/legacy"; //не работает File sdDir = new File (test);  if (sdDir.exists ()) {Файл файл = новый файл (тест, "test.sdcard");  попробуйте {file.createNewFile ();  } catch (IOException e) {e. printStackTrace ();  }}  

Итак, вам лучше попробовать каталоги /storage/emulated/* , чтобы узнать, какая именно ваша SD-карта.

Оцените статью
logicle.ru
Добавить комментарий