【发布时间】:2016-09-14 18:31:01
【问题描述】:
我试图找出一个MediaStore 查询,它将获取Playlist 的所有成员歌曲。但是,List 总是返回空而没有结果(即使在通知适配器之后)。这是我目前正在做的事情......
获取播放列表歌曲方法
ContentResolver musicResolver = getActivity().getContentResolver();
Uri musicUri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID);
Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int idColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.AUDIO_ID);
int titleColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.TITLE);
int artistColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.ARTIST);
int albumColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.ALBUM);
int pathColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.DATA);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
String thisAlbum = musicCursor.getString(albumColumn);
String thisPath = musicCursor.getString(pathColumn);
songList.add(new Song(thisId, thisTitle, thisArtist, thisAlbum, thisPath));
}
while (musicCursor.moveToNext());
}
musicCursor.close();
这就是我如何使用它的 ID 将值添加到播放列表中...
添加播放列表歌曲方法
public static void addToPlaylist(ContentResolver resolver, long audioId, String title, String artist, String album, String path) {
String[] cols = new String[] {
"count(*)"
};
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID);
Cursor cur = resolver.query(uri, cols, null, null, null);
cur.moveToFirst();
cur.close();
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, audioId);
values.put(MediaStore.Audio.Playlists.Members.TITLE, title);
values.put(MediaStore.Audio.Playlists.Members.ARTIST, artist);
values.put(MediaStore.Audio.Playlists.Members.ALBUM, album);
values.put(MediaStore.Audio.Playlists.Members.DATA, path);
resolver.insert(uri, values);
}
有什么建议吗?谢谢!
【问题讨论】:
标签: android listview mediastore