#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. да, я тоже тестировал это на своем телефоне. но тот же результат