扫描媒体文件时,光标不返回任何内容

时间:2014-07-03 18:57:16

标签: android android-mediaplayer

当我尝试使用光标扫描外部卡时,它什么也没有返回。这是我的代码,

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

    // Loop through results
    if ((mediaCursor != null) && 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 个答案:

答案 0 :(得分: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" />

在您的清单文件中?