Содержимое SDCard существует, но не может его увидеть

У меня очень странная проблема с моим Samsung Nexus с Android 4.0.2. Я написал простую программу, которая в основном создает файл каждый раз, когда пользователь нажимает кнопку. Моя программа отлично работает на других устройствах, где, как и на Galaxy Nexus, Windows/Mac не может видеть эти файлы на SD-карте, но когда я делаю оболочку adb, я вижу все файлы на SD-карте.

Я повторно тестирую это на другом Nexus с Android 4.0.4, но результат тот же.

Что может быть причиной?


person minhaz    schedule 17.05.2012    source источник


Ответы (1)


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

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

Внешнее хранилище сканируется при перезагрузке и, возможно, периодически. Пользователи могут вручную принудительно выполнить сканирование с помощью таких утилит, как SDRescan. Однако лучший ответ — использовать scanFile() в MediaScannerConnection для обновления базы данных мультимедиа после закрытия файла. Это сделает ваш файл немедленно доступным для пользователя.

person CommonsWare    schedule 17.05.2012