Cursor.getCount () возвращает 0 при поиске аудиофайлов из внешнего хранилища в эмуляторе - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над приложением медиаплеера на Android Studio. Я использую функцию, которая загружает аудиофайлы из внешнего хранилища с помощью курсора. Я установил все разрешения в файле манифеста, а также реализовал функцию

@Override
public void onRequestPermissionsResult()

Нет ошибок в отношении разрешений. Просто указатель курсора возвращает 0. Это потому, что я использую эмулятор или что-то не так в коде. Вот соответствующий фрагмент кода

private void loadAudio() {
    ContentResolver contentResolver = getContentResolver();
    Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0";
    String sortOrder = MediaStore.Audio.Media.TITLE + " ASC";
    Cursor cursor = contentResolver.query(uri, null, selection, null, sortOrder);
    Log.i("Cursor Count=",cursor.getCount()+"");
    if (cursor.getCount() > 0) {
        audioList = new ArrayList<>();
        while (cursor.moveToNext()) {
            String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
            String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
            String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
            String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
            // Save to audioList
            audioList.add(new Audio(data, title, album, artist));

        }
    }

    cursor.close();
}

Может кто-нибудь помочь. Спасибо!

...