MediaStore: запрос не возвращает все песни - PullRequest
0 голосов
/ 18 декабря 2018

В моем приложении есть вкладка, где я перечисляю все доступные песни.Тем не менее, я получаю жалобы от нескольких пользователей, что некоторые из песен, которые видны в диспетчере файлов, не отображаются.Это запрос курсора, который я использую

public static Cursor getAllSongsCursor(Context mContext){

    String selection= MediaStore.Audio.Media.DURATION + " >=" + minTimeSongLimit;

    String sortBy = SortArgFactory.getSortBy(FactoryConstants.TRACKS);


    Cursor cursor = mContext.getApplicationContext().getContentResolver().query(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            null,
            selection,
            null,
            sortBy);
    return cursor;
}

Я не могу понять, почему этот запрос курсора не отображает все песни, которые соответствуют условию выбора.

Любая помощь будет высоко оценена.

(Я пытался предоставить несколько исправлений разным клиентам, но почти всегда они не отслеживаются, и это прекрасно работает во всех наших тестовых сценариях)

1 Ответ

0 голосов
/ 18 декабря 2018

База данных мультимедиа, которую вы запрашиваете в данный момент, может не обновляться (обновляться), из-за чего вы не видите запрошенный носитель.

Вы можете запустить обновление носителя.Пожалуйста, ознакомьтесь с вопросом ниже.

Как обновить MediaStore на Android?

Фрагмент кода из приведенного выше вопроса

MediaScannerConnection.scanFile(
    context, 
    new String[]{ pathToFile1, pathToFile2 }, 
    new String[]{ "audio/mp3", "*/*" }, 
    new MediaScannerConnectionClient()
    {
        public void onMediaScannerConnected()
        {
        }
        public void onScanCompleted(String path, Uri uri)
        {
        }
    });
...