2012-05-17 3 views
2

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

Повторяю это на другом Nexus, у которого есть Android 4.0.4, но все тот же результат.

В чем причина?

ответ

10

Возможно, вам необходимо проиндексировать свои файлы через MediaScannerConnection. Котировка себя from a blog post from last year:

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

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

Смежные вопросы