Пустой курсор из Медиастора
Я не могу понять, почему этот курсор пуст только в этом конкретном устройстве. но работает на всех других устройствах android. На SD-карте есть несколько аудиофайлов, и стоковый медиаплеер может найти и воспроизвести эти песни в порядке.
Cursor c = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { "distinct " + MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM_KEY, MediaStore.Audio.Media.ALBUM_ID},
null,
null,
MediaStore.Audio.Media.ARTIST);
И бродячий книжный плеер (я предполагаю, что они просто перебирают папки и делают свой собственный анализ id3), и стоковый музыкальный плеер android находят музыку, но я ничего не могу получить из mediastore. Нет ".файлы nomedia " присутствуют, я пробовали вставлять новые mp3 файлы в новую папку.
2 ответа:
Я сталкивался с подобным и обнаружил несколько ответов, из которых ни один пока не оказался удовлетворительным.
Медиа-сканер запускается в ответ на запуск системы широковещательного намерения ACTION_MEDIA_MOUNTED, что и происходит во время загрузки. Так что первое, что нужно проверить-это перезагрузка.
Насколько я понимаю, сканер также будет работать после того, как Настройки > Управление приложениями > хранилище мультимедиа > Очистка данных-и повторное заполнение хранилища мультимедиа из хранилища. Я попробовал, и это сработало без Я произведу эффект.. Я не могу гарантировать безопасность, конечно, и не сделал бы этого на устройстве, не являющемся dev.
Вы также можете вручную
mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse ("file://" + Environment.getExternalStorageDirectory())));
И повесил какое-то уведомление, наблюдая за трансляцией intent ACTION_MEDIA_SCANNER_FINISHED.
Если вы импортируете носитель самостоятельно, проверьте MediaScannerConnection, Чтобы запустить сканер.
О, и если вы планируете перейти на такие устройства, как Nexus от Google, вам нужно будет иметь дело с INTERNAL_CONTENT_URI.
У меня такая же проблема на HTC Incredible, и, к сожалению, ответ DJC не сработал для меня. И EXTERNAL_CONTENT_URI, и INTERNAL_CONTENT_URI не дали мне никаких изображений. После некоторых раскопок я обнаружил, что, используя следующий контент URI, он, похоже, работал на HTC Incredible.
Uri contenturi = Images.Media.getContentUri("phoneStorage");