Как обновить / отсканировать память SD в Android 4.4 KitKat

13

Я получил официальное обновление OTA KitKat для своего Nexus 4 на прошлой неделе, и с тех пор я не смог повторно отсканировать SD-карту. Я пробовал несколько разных приложений для этой задачи, но все они вылетали при открытии. Небольшое исследование показывает несколько пользователей с той же проблемой.

Это приложения, которые я пробовал:

  • Рескан Медиа ( Адитья Талпада )
  • Rescan SD Card! ( sTOOPIDfiG )
  • Rescan SD Media Card ( РАДИАФФЕКТУРА )
  • SDrescan ( Бенджамин Россо ) мой старый резерв на желе

Каждое приложение вылетает при запуске. Кто-нибудь может обновить свою SD-память на KitKat?

zippanova
источник

Ответы:

13

Он не будет работать для обнаружения удаленных файлов, но я просто поместил в магазине Play приложение, которое будет работать с новыми и обновленными файлами: https://play.google.com/store/apps/details?id=com. gmail.jerickson314.sdscanner

Он использует обходной путь, основанный на ответе Дэна Халма: с помощью API, который предназначен только для определенного файла, но вручную создается рекурсивный список файлов на карте. Для этого требуется только разрешение на чтение на SD-карте, а не root, и имеет приятный побочный эффект - надежный индикатор прогресса.

Джереми Эриксон
источник
Это должен быть принятый ответ; Ответ Дэна не решает проблему. Другая половина проблемы - избавление от удаленных файлов - решается путем очистки кэша и данных службы мультимедиа вручную. Легко попасть в ситуацию, когда вы вынуждены выполнить повторное сканирование - например, когда вы переименовываете папку.
Барри Келли
С момента написания этого ответа я реализовал функциональность для чтения базы данных мультимедиа. Насколько я могу судить, он работает для обнаружения удаленных файлов. Иногда удаленные файлы вообще не отображаются в базе данных мультимедиа, что, как я подозреваю, означает, что они очищаются Google Play Music или чем-то еще до того, как SD Scanner доберется до них.
Джереми Эриксон
Досадно, что мне пришлось скопировать мелодии по умолчанию, сигналы тревоги, звуки уведомлений и т. Д. В каталоги / sdcard, чтобы их снова можно было найти в настройках.
Барри Келли
К сожалению, приложение, кажется, больше не находится в магазине
Эдвард Фальк
6

Вы не можете больше использовать подобные приложения. Поскольку многие приложения злоупотребляли MEDIA_MOUNTEDнамерением вещания, чтобы вызвать повторное сканирование всей файловой системы (разряжая батарею) после того, как они изменили только один файл, у KitKat есть новое ограничение, что только системные приложения могут передавать это намерение. Попытки приложения получат сообщение SecurityException, которое по умолчанию вызывает диалог «... остановлен».

Для приложения существует альтернативный механизм, позволяющий сказать, что оно изменило конкретный файл, и заставить этот файл повторно сканироваться (не рекурсивно), но (а) не существует замены, которая сканирует целую файловую систему, потому что она будет использоваться таким же образом. ; и (б) это зависит от приложения, чтобы вызвать это. Это не то, что вы можете изменить как пользователь.

Приложение, использующее , сможет заставить это работать так же, как 4.3 и более ранние версии, но, опять же, оно должно быть специально написано для запроса root. Рултирование устройства не заставит ваши старые приложения снова начать работать.

Для получения дополнительной технической информации см. Как запустить MediaScan на Nexus 7? на Stack Overflow, нашем дочернем сайте по вопросам программирования.

Дэн Халм
источник
Это не ответ на вопрос. Мои медиафайлы полностью недоступны на KitKat просто потому, что я переименовал папку. Удаление функциональности без предоставления альтернативы полностью нарушено.
Барри Келли
3

Это очень хороший вопрос, и я вижу, что на него уже дан ответ. Я написал небольшое приложение для решения этой проблемы специально для Kit Kit (Android 4.4+). Мое приложение работает на всех телефонах.

Вот:

https://play.google.com/store/apps/details?id=burrows.apps.sdcard

Это работает на Nexus 5!

Пожалуйста, дайте мне знать, если это поможет вам!

Отказ от ответственности: я написал это приложение.

Джаред Барроуз
источник