- Не удается найти нужный путь при перемещении андроид
- Получение пути к карте памяти SD Card на Android
- Терминология
- Результаты поиска
- Описание кода
- Пример использования
- Заключение
- Что делать, если Андроид не сохраняет приложения на карту памяти
- от UpDron
- Опасность проблемы
- Узнаем версию Android
- Решение для версий Андроид 4.0 — 6.0
- Использование сторонних приложений
- Телефон не видит карту памяти
Не удается найти нужный путь при перемещении андроид
Немного теории.
Папка 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
Разрабатывая приложение для проведения соревнований, я столкнулся с проблемой хранения базы данных. Проблема состояла в том, как мне определить внешнюю карту памяти. В целом поиск в сети точного ответа не дал. Поэтому, объединив все найденные результаты, я собрал свой класс. Если кому интересно, смотрим под катом.
Итак, начнем с теории.
Терминология
Гугл нам говорит, что есть следующие понятия:
- Внутренняя (internal) память — это часть встроенной в телефон карты памяти. При ее использовании по умолчанию папка приложения защищена от доступа других приложений (Using the Internal Storage).
- Внешняя (external) память — это общее «внешнее хранилище», т.е. это может быть как часть встроенной памяти, так и удаляемое устройство. Обычно это часть встроенной памяти, как удаляемое устройство я видел в последний раз на андройде 2.2, где встроенная память была около 2Гб, и подключаемая память становилась внешней (Using the External Storage).
- Удаляемая (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 и сделано это для поддержки многопользовательского режима работы системы. Более подробно тут. И вот, чтобы не получать одну и туже карту памяти как различные устройства, необходим способ определения идентичности. Если бы был доступ к конфигурации монтирования, то и вопросов не было. Но доступа нет. Поэтому я тут подсмотрел решение с расчетом хэша для каждого устройства:
- создаем StringBuilder
- записываем в него общий размер устройства и размер используемого пространства устройства
- обходим содержимое корня устройства
- записываем имя каталога
- записываем имя файла и размер
- вычисляем hash
Пример использования
Заключение
Подробные рассуждения по этому вопросу понимания памяти в Android, некоторые советы можно прочитать тут.
Исходный код всего класса расположен еще нигде не расположен. На днях постараюсь разместить на gitHub.
Источник
Что делать, если Андроид не сохраняет приложения на карту памяти
от UpDron
Добрый день, наши уважаемые читатели и одновременно пользователи современных девайсов. Сегодня мы поговорим о проблеме, столь знакомой очень многим из нас.
Случается, вы устанавливаете новое приложение, но загрузка на включается, а всплывает окошко, мол, удалите старые приложения, чтобы освободить память на устройстве. Когда Андроид не сохраняет на карту памяти, как с этим быть?
Опасность проблемы
Планшетники и смартфоны сегодня обладают различным размером встроенной памяти. Правда, с учётом обилия приложений, возможностей подключения разных гаджетов, основной памяти может не хватать.
Конечно, в наш век любой понимает, что элементарное здесь решение – подключение SD карты, ведь сегодня в телефонах хранятся не только контакты, но и масса всего полезного и развлекательного.
Так современные microSD могут добавить вам до 8 Гб памяти, microSDHC – до 32 Гб, microSDXC – оптимально предлагают 64 или 128 Гб, но самые дорогие из них способны вмещать и 2 Тб информации.
Для сравнения, скачиваемая на телефон музыка «весит» обычно 3-10 Мб, фотография в смартфоне занимает – 1-5 Мб, а фильм самого плохого качества от 700 Мб. Не говоря уже об играх для смартфонов. В общем, приобретая карту, вы, конечно, будете ориентироваться не только на возможности вашего девайса, но и на ваши запросы.
Вот только бывает, что карта, наконец, вставлена, проблема должна наладиться, но вот снова: вы скачиваете приложение из Play Market, а оно снова стремится в память смартфона.
Очистка кэша – эта только временная мера. Так почему Андроид не желает сохранять на карту? Вопрос принудительного перемещения файлов на внешнюю карту напрямую зависит от версии ОС.
Узнаем версию Android
Как узнать версию Андроид? Для этого нужно:
- заходим в «Настройки»;
- в списке пунктов найдите «О телефоне»;
- теперь нажмите «Информация о версиях», и тут увидите версию операционной системы.
Решение для версий Андроид 4.0 — 6.0
Последовательность решения этого вопроса различна для определённых ОС. Так сегодня большое число смартфонов среднего сегмента работает на Android из ряда 4-й версии, также на андроид 5.1 и 6.0.
Android 4.0, 4.1 и 4.2 позволяют настраивать сохранение фалов на SD карту, не располагая правами суперпользователя. Нужно просто попасть в «Настройки» войти в подменю «Память» и указать там в качестве ресурса для сохранения данных по умолчанию установленную карту памяти.
Впредь из Play Market новое приложение будет сохраняться именно там. Правда, старые приложения придётся перемещать вручную, а если не выйдет – устанавливать заново.
Для осуществления задачи зайдите в «Приложения», выберете нужное и указывайте каждый раз путь – «Перенести на SD». Но не все приложения, особенно из системных, «послушаются» вас, ведь для переноса данных на Андроид от 4.4 и выше вам потребуется заполучить Root-права.
Получение прав суперпользователя происходят посредством специальных утилит.
Самые известные из них: Framaroot и Kingo Android Root. Но при полном доступе к вашим файлам, вы терпите некоторые издержки при получении Root-прав: вы лишаетесь прав на гарантийное обслуживание устройства, обновления не приходят сами собой по воздуху, по незнанию вы можете повредить работу системы, удалив случайно важные файлы.
Использование сторонних приложений
Заставить смартфон быстрее переносить приложения можно через AppMgr Pro III.
Скачайте приложение в Маркете Гугл, очищайте кэш приложений автоматически и производите иные манипуляции. Программа делит приложения по трём характеристикам: хранящиеся на «на карте SD», «на телефоне» и «перемещаемые». Последние можно транслировать на внешнюю карту. Можно даже кликнуть сразу «перенести всё» — быстро и удобно.
Альтернативной является программа Link2SD, работающая с ОС от 4.4. Она создаёт на карте отдельные библиотеки, перенося приложения частично. Но и тут будьте осторожны – не трогайте системные файлы.
Телефон не видит карту памяти
Есть несколько причин, почему телефон не различает карту:
- Отошли контакты – первая причина. Просто вытащите и вновь вставьте карту SD.
- Секторы повреждены. Что делать в этом случае? Отформатировать карту памяти.
- Причина – блокировка в системе безопасности телефона. Снять её вам могут помочь в сервисе.
- В сервисном же центре вам подскажут, если что-то внутри телефона не ладится, и помогут починить данный элемент, возвращая аппарату отзывчивый «диалог» с картой памяти.
- Несовместимая карта. Вам только останется заменить карту, внимательно читая в инструкции о совместимости вашего устройства.
Когда девайс определит наличие карты, можете пробовать переносить на неё программы по указанным выше инструкциям. А разгруженная системная память будет служить вам бесперебойно, сохранять приложения, видео и фото на смартфон и не станет озадачивать вас неприятными извещениями при скачивании новых приложения из Магазина Гугл.
Надеюсь, мы оказали вам реальную помощь и рады в дальнейшем рассказывать о тонкостях работы современных устройств. Заходите также к нам вместе с друзьями в группу ВК, на Фейсбуке, на Твиттере, а также на [urlspan]канал на Ютубе[/urlspan].
Источник