курсор ничего не возвращает при сканировании медиафайлов

#android #android-mediaplayer

#Android #android-mediaplayer

Вопрос:

Когда я попытался отсканировать внешнюю карту с помощью курсора, она ничего не вернула. Вот мой код,

     Cursor mediaCursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
            mediaColumns, null,null,null);

    // Loop through results
    if ((mediaCursor != null) amp;amp; mediaCursor.moveToFirst()) {
        do {
            // Get video id
            int id = mediaCursor.getInt(mediaCursor
                    .getColumnIndex(MediaStore.Video.Media._ID));
            // Get the thumbnail associated with the video
            @SuppressWarnings("deprecation")
            Cursor thumbnailCursor = managedQuery(
                    MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
                    thumbnailColumns, MediaStore.Video.Thumbnails.VIDEO_ID
                              "="   id, null, null);


            // New movie object from the data
            Moovi movie = new Moovi(mediaCursor, thumbnailCursor);
            Log.d(LOG_TAG, movie.toString());
            // Add to movie list
            movieList.add(movie);
        } while (mediaCursor.moveToNext());
    }
  

что не так в этом коде. кто-нибудь может предложить способ исправить это

Комментарии:

1. Вы тестируете это на Android 4.4 (уровень API 19)? Работает ли код в более ранних версиях? Если это так, вам может просто понадобиться разрешение READ_EXTERNAL_STORAGE.

2. @MichaelMarvick Я тестирую это на Android 4.2, и у меня есть это разрешение в моем манифесте. У него нет проблем с запуском. Но он показывает пустой список

Ответ №1:

Сначала проверьте, можете ли вы получить какой-либо результат от mediaCursor . Поместите только MediaStore.Video.Media._ID в параметр columns. Что-то вроде этого:

 Cursor mediaCursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
            new String[]{MediaStore.Vide.Media._ID}, null,null,null);
  

а затем проверьте результаты.

Вы добавили

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

в вашем файле манифеста?

Комментарии:

1. @markus m я добавил разрешение и изменил свой код, как вы сказали. это не будет work.it показывает пустой список, как и раньше

2. вы уверены, что у вас установлена sdcard / какие-либо видео на sdcard?

3. да, я тоже тестировал это на своем телефоне. но тот же результат