Android нет папки sd card

Android нет папки sd card

Немного теории.
Папка LOST.DIR . Почему она заполняется?
Эта папка создается в случае, когда Android запускает File System ChecK (аналог Windows Chkdsk) и находит потерянные цепочки файлов. Эти файлы появляются, если вы вытаскиваете карту памяти в момент, когда на нее будет производится запись. Ведь Windows пытается записать файлы, используя механизм кэширования. Когда вы выдёргиваете кабель, содержимое кэша не успевает записаться на диск и данные в файле оказываются неполноценные. После того, как девайс отключён от компьютера, Android запускает сканирование карты и обнаруживает такие «битые» файлы, перемещая их остатки в директорию LOST.DIR.

Полезные ссылки:
1. FAQ по устройствам и Android OS — посмотрите в FAQ по Вашему аппарату, может там описаны рекомендуемые карты памяти для конкретной модели аппарата.
2. Посмотрите тему «Аксессуары» Вашего устройства. В ней тоже может быть собрана полезная информация по рабочим и не рабочим картам.
3. Затрудняетесь с выбором карты? Тогда смотрите здесь: Аксессуары для различных устройств, а так же много советов было здесь Хочу купить карту MicroSD 32гб. Посоветуйте., и здесь: Выбор флеш карты

Приступим к практике.

1. Всегда, перед отключением девайса от компьютера, выбирайте «Безопасное извлечение» , а далее, в самом устройстве «Отключить USB накопитель» (P.S. Может называться по другому, в зависимости от модели и прошивки аппарата).
2. Проверьте карту памяти при помощи приложения ScanDisk.
3. Проблема может крыться и в самой карте памяти. Попробуйте отформатировать ее и следуя совету выше, записывайте на нее файлы.
— Как форматировать:

  • Полное форматирование с помощью телефона: Меню-Настройки-Память-Отключить карту памяти (Извлечь карту)-Очистить карту-Подключить SD-карту (П.С. названия и пути могут меняться, в зависимости от модели телефона);
  • Форматирование с помощью компьютера с выбором разного размера кластера.
  • Форматирование с использованием специального приложения SD Formatter или Hard Disk Low Level Format Tool. Так называемое «низкоуровневое» форматирование.

4. Попробуйте поменять кэш на карте памяти с помощью этого приложения: ® SD Speed Increase
5. Форматирование не помогает? Попробуйте заменить карту памяти на другую.
6. Записанные Вами файлы с компьютера видны а с устройства нет? Посмотрите, нет ли случайно в папке, в которую Вы их записали, файла .nomedia(файл скрытый). Если есть — удалите его.

Сообщение отредактировал Gridzilla — 14.08.18, 18:54

Проверьте папки с музыкой на наличие файла .nomedia или просто отформатируйте флеш-карту и перезалейте музыку.

Сообщение отредактировал Fury-Fox — 23.10.11, 03:53

Запустите через Rescan Media сканирование флешки

Сообщение отредактировал eeriesilence — 23.10.11, 18:40

Запустите через Rescan Media сканирование флешки

Сообщение отредактировал eeriesilence — Сегодня, 19:40

Еще есть вариант, что в папке с музыкой лежит файл «.nomedia». Его надо удалить.
P.s. этот файл можно увидеть через PC
Я обычно, от чужих глаз файлы храню.

Сообщение отредактировал Kwitty — 24.10.11, 14:53

armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.

Сообщение отредактировал Бодтэк — 24.10.11, 15:05

armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.

Сообщение отредактировал Бодтэк — Вчера, 16:05
Причина редактирования: Исправил ошибку.

Друг мой, ты просто красавчик. 🙂 все сделал,как ты сказал, заработало :-):-):-):-) как тут на сайте у вас тут принято рейтинг поднимать или что, научи, подниму 🙂

У меня такая же проблема ставь лучше Power amp и забудь свои проблемы.

Добавлено 16.11.2011, 19:01:

Лучше препрошиться сохранить данные с флешки и всё будет все нормально , пробуй.

Источник

Получение пути к карте памяти SD Card на Android

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

Читайте также:  Huawei mediapad 7 lite как обновить android

Итак, начнем с теории.

Терминология

Гугл нам говорит, что есть следующие понятия:

  1. Внутренняя (internal) память — это часть встроенной в телефон карты памяти. При ее использовании по умолчанию папка приложения защищена от доступа других приложений (Using the Internal Storage).
  2. Внешняя (external) память — это общее «внешнее хранилище», т.е. это может быть как часть встроенной памяти, так и удаляемое устройство. Обычно это часть встроенной памяти, как удаляемое устройство я видел в последний раз на андройде 2.2, где встроенная память была около 2Гб, и подключаемая память становилась внешней (Using the External Storage).
  3. Удаляемая (removable) память — все хранилища, которые могут быть удалены из устройства без «хирургических» вмешательств.

До версии KitKat 4.4 API не предоставляло функционала для получения путей к внешней памяти. Начиная с этой версии (API 19) появилась функция public abstract File[] getExternalFilesDirs (String type), которая возвращает массив строк с путями к внутренней и внешней памяти. Но как же быть с нашей SD Card, которая вставлена в слот? Путь к ней мы опять не можем получить.

Результаты поиска

Чтобы ответить на поставленный вопрос я обратился к всезнающему гуглу. Но и он мне не дал четкого ответа. Было рассмотрено множество вариантов определения от использования стандартных функций, которые ведут к внешней памяти, но ничего общего с удаляемыми устройствами хранения данных они не имеют, до обработки правил монтирования устройств (Android же на ядре Linux работает). В последних случаях были использованы «зашитые» пути к папке с примонтироваными устройствами (в различных версиях эта директория разная). Не стоит забывать, что от версии к версии правила монтирования меняются.

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

Описание кода

Был создан класс MountDevice, который содержит в себе путь к устройству, тип устройства и некий хэш.
Типов устройств выделено два (внутреннюю память я не стал трогать, так как к ней доступ можно получить через API системы).

И был создан класс StorageHelper, который и осуществляет поиск доступных карт памяти.

В классе StorageHelper реализовано два способа поиска — через системное окружение (Environment) и с использованием утилиты Linux mount, а точнее результата ее выполнения.

Способ первый — Environment

При работе с окружением я использую стандартную функцию getExternalStorageDirectory() для получения информации о внешней памяти. Чтобы получить информацию о удаляемой памяти, я использую переменную окружения «SECONDARY_STORAGE«.

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

Вариант решения взят со stackoverflow. Ответ где-то там внизу.

Способ второй — mount

Так как у меня долго не получалось заставить систему мне сказать путь к удаляемой памяти, я решил искать в сторону примонтированных устройств. В системе есть файлы конфигурации, в которых описаны правила монтирования внешних устройств. Все бы хорошо, но на Android версии 4.* к этому файлу простым смертным доступа нет, поэтому рассматривать этот способ не буду.

Вернемся к утилите mount. При запуске без параметров команда возвращает список смонтированных файловых систем. Удаляемые устройства имеют обычно формат файловой системы FAT, то будем выделять строки, в которых есть характеристика «fat«. Внешняя память будет характеризоваться параметром «fuse«.

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

Читайте также:  Как повернуть экран вверх ногами андроид

Вариант решения взят со stackoverflow. Ответов там несколько примерно одинаковых.

Про дублирование

Многие замечали в директории монтирования устройств такую картину:

И что самое интересно, все это одна и та же внешняя карта памяти. Такое дробление начинается с версии Jelly Bean и сделано это для поддержки многопользовательского режима работы системы. Более подробно тут. И вот, чтобы не получать одну и туже карту памяти как различные устройства, необходим способ определения идентичности. Если бы был доступ к конфигурации монтирования, то и вопросов не было. Но доступа нет. Поэтому я тут подсмотрел решение с расчетом хэша для каждого устройства:

  1. создаем StringBuilder
  2. записываем в него общий размер устройства и размер используемого пространства устройства
  3. обходим содержимое корня устройства
  4. записываем имя каталога
  5. записываем имя файла и размер
  6. вычисляем hash

Пример использования

Заключение

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

Исходный код всего класса расположен еще нигде не расположен. На днях постараюсь разместить на gitHub.

Источник

Android нет папки sd card

Перенос кэша игр и данных других программ на sdcard2 (ROOT)

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

Чтобы не мучать линуксоидов скажу: mount -o bind /what/you/mount /where/want/mount

И пока знающие ребята переносят кэши и карты на внешнюю флешку, мы начнем постигать сие премудрие с самого начала :yes2:
Перенос будем рассматривать на примере кэшей игр от Gameloft. (да я знаю что есть спец прога 😛 )

Внимание!
Данный способ рассматривается на примере для DellStreak7 Android 3.2, точка монтирования внешней флешки в вашем устройстве может называться иначе.
Ну и, естественно, все на ваш страх и риск.

1. Определитесь где у вас на sdcard2 будут храниться перенесенные данные и создайте для них папку. Я создал ее с названием Bind
2. Создайте в только что созданной папке еще одну папку с именем gameloft
3. Перенесите в нее содержимое папки /mnt/sdcard/gameloft/games
4. Скачайте с маркета бесплатное приложение Script Manager
5. Решите где у вас будет лежать скрипт. Я создал на внутренней флешке папку Scripts .
6. Запустите Script Manager и перейдите в эту папку.
7. Создайте новый скрипт ( меню-(+) ) и назовите его bind.sh
8. Щелкните по свежесозданному файлу и в появившемся меню нажмите:
Звездочку — это добавит наш скрипт в избранное.
Черепок — запуск скрипта с root привилегиями.
Шестеренку — добавит скрипт в автозагрузку.
Далее жмем кнопку Edit и открываем скрипт любимым текстовым редактором.
9. Настало время для самого сложного >-)
Структура команды:
mount -o bind
Исходя из этого у нас получается:
mount -o bind /mnt/sdcard2/bind/gameloft /mnt/sdcard/gameloft/games
иными словами мы говорим системе что содержимое папки /sdcard/gameloft/games находится в папке /sdcard2/bind/gameloft
10. В открытом файле (вы ведь не закрыли его еще? 😉 ) пишем:

11. Сохраняем файл и закрываем текстовый редактор.
12. Жмем кнопку Run и идем в папку /gameloft/games
Если кэши в ней видны, значит вы все сделали правильно, можно запустить и проверить игру.
При следующей перезагрузке скрипт выполнится автоматически.

По аналогии переносим другие данные просто дописывая в этот скрипт.

Пример моего скрипта:

Q: У меня нет папки mnt.
A: Вам стоит почитать о файловой структуре Android.

Q: Можно же просто симлинк создать!
A: Если вы расскажете как это сделать на fat разметке — пошатнете мир линукса.

Q: Не работает.
A: Работает! Делайте строго по инструкции!

Читайте также:  Как с андроида удалить navitel с

Сообщение отредактировал Dreamer. — 30.11.15, 09:25

Будте так добры в дополнение расскажите каким образом править путь закачки кеша,допустим есть игра Modern Combat-3 и ее вес составляет 1637 MB,в планшете свободные 1.3 GB. Попытки монтирования с помощью GL-to-SD в любом случае кеш переносится во внутренний Flash

Источник

Android нет папки sd card

Немного теории.
Папка LOST.DIR . Почему она заполняется?
Эта папка создается в случае, когда Android запускает File System ChecK (аналог Windows Chkdsk) и находит потерянные цепочки файлов. Эти файлы появляются, если вы вытаскиваете карту памяти в момент, когда на нее будет производится запись. Ведь Windows пытается записать файлы, используя механизм кэширования. Когда вы выдёргиваете кабель, содержимое кэша не успевает записаться на диск и данные в файле оказываются неполноценные. После того, как девайс отключён от компьютера, Android запускает сканирование карты и обнаруживает такие «битые» файлы, перемещая их остатки в директорию LOST.DIR.

Полезные ссылки:
1. FAQ по устройствам и Android OS — посмотрите в FAQ по Вашему аппарату, может там описаны рекомендуемые карты памяти для конкретной модели аппарата.
2. Посмотрите тему «Аксессуары» Вашего устройства. В ней тоже может быть собрана полезная информация по рабочим и не рабочим картам.
3. Затрудняетесь с выбором карты? Тогда смотрите здесь: Аксессуары для различных устройств, а так же много советов было здесь Хочу купить карту MicroSD 32гб. Посоветуйте., и здесь: Выбор флеш карты

Приступим к практике.

1. Всегда, перед отключением девайса от компьютера, выбирайте «Безопасное извлечение» , а далее, в самом устройстве «Отключить USB накопитель» (P.S. Может называться по другому, в зависимости от модели и прошивки аппарата).
2. Проверьте карту памяти при помощи приложения ScanDisk.
3. Проблема может крыться и в самой карте памяти. Попробуйте отформатировать ее и следуя совету выше, записывайте на нее файлы.
— Как форматировать:

  • Полное форматирование с помощью телефона: Меню-Настройки-Память-Отключить карту памяти (Извлечь карту)-Очистить карту-Подключить SD-карту (П.С. названия и пути могут меняться, в зависимости от модели телефона);
  • Форматирование с помощью компьютера с выбором разного размера кластера.
  • Форматирование с использованием специального приложения SD Formatter или Hard Disk Low Level Format Tool. Так называемое «низкоуровневое» форматирование.

4. Попробуйте поменять кэш на карте памяти с помощью этого приложения: ® SD Speed Increase
5. Форматирование не помогает? Попробуйте заменить карту памяти на другую.
6. Записанные Вами файлы с компьютера видны а с устройства нет? Посмотрите, нет ли случайно в папке, в которую Вы их записали, файла .nomedia(файл скрытый). Если есть — удалите его.

Сообщение отредактировал Gridzilla — 14.08.18, 18:54

Проверьте папки с музыкой на наличие файла .nomedia или просто отформатируйте флеш-карту и перезалейте музыку.

Сообщение отредактировал Fury-Fox — 23.10.11, 03:53

Запустите через Rescan Media сканирование флешки

Сообщение отредактировал eeriesilence — 23.10.11, 18:40

Запустите через Rescan Media сканирование флешки

Сообщение отредактировал eeriesilence — Сегодня, 19:40

Еще есть вариант, что в папке с музыкой лежит файл «.nomedia». Его надо удалить.
P.s. этот файл можно увидеть через PC
Я обычно, от чужих глаз файлы храню.

Сообщение отредактировал Kwitty — 24.10.11, 14:53

armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.

Сообщение отредактировал Бодтэк — 24.10.11, 15:05

armvolk, очистите данные программы «Хранение мультимедиа» и заново запустите штатный плеер.

Сообщение отредактировал Бодтэк — Вчера, 16:05
Причина редактирования: Исправил ошибку.

Друг мой, ты просто красавчик. 🙂 все сделал,как ты сказал, заработало :-):-):-):-) как тут на сайте у вас тут принято рейтинг поднимать или что, научи, подниму 🙂

У меня такая же проблема ставь лучше Power amp и забудь свои проблемы.

Добавлено 16.11.2011, 19:01:

Лучше препрошиться сохранить данные с флешки и всё будет все нормально , пробуй.

Источник

Оцените статью