在android中从MediaStore查询相册

在android中从MediaStore查询相册,android,android-mediaplayer,android-contentprovider,android-cursor,Android,Android Mediaplayer,Android Contentprovider,Android Cursor,我正在android中开发一个简单的媒体应用程序。我想查询设备上可用媒体的相册。当我使用DISTINCT关键字查询相册的name时,我成功地检索到了唯一的名称,但我们还需要其他数据,如相册艺术,等,当我查询超过1列时,它会给出重复的值 这是我的密码 String[] columns = { Albums.ALBUM, Albums._ID, Albums.ARTIST }; String selection = null; String[] selectionAr

我正在android中开发一个简单的媒体应用程序。我想查询设备上可用媒体的相册。当我使用DISTINCT关键字查询相册的name时,我成功地检索到了唯一的名称,但我们还需要其他数据,如相册艺术,等,当我查询超过1列时,它会给出重复的值

这是我的密码

String[] columns = { Albums.ALBUM, Albums._ID, Albums.ARTIST };
        String selection = null;
        String[] selectionArgs = null;
        cursor = resolver.query(EXTERNAL, columns, selection, selectionArgs,
                null);

        if (cursor == null) {

        } else if (!cursor.moveToFirst()) {
            Toast.makeText(context, "No Media on Device", Toast.LENGTH_SHORT)
                    .show();    
        } else {

            do {
                String album_name = cursor.getString(0);
                album = new HashMap<String, Object>();
                album.put("AlbumName", album_name);
                album_list.add(album);
            } while (cursor.moveToNext());
        }
String[]columns={Albums.ALBUM,Albums.\u ID,Albums.ARTIST};
字符串选择=null;
字符串[]selectionArgs=null;
cursor=resolver.query(外部、列、选择、selectionArgs、,
无效);
if(游标==null){
}如果(!cursor.moveToFirst()),则为else{
Toast.makeText(上下文,“设备上无媒体”,Toast.LENGTH\u SHORT)
.show();
}否则{
做{
String album_name=cursor.getString(0);
album=新HashMap();
唱片集名称(“唱片集名称”,唱片集名称);
相册列表。添加(相册);
}while(cursor.moveToNext());
}
请帮忙 谢谢你刚刚改变了这个

cursor = resolver.query(EXTERNAL, columns, selection, selectionArgs,
                null);

cursor = resolver.query(Albums.EXTERNAL_CONTENT_URI, columns, selection, selectionArgs,
                null);