我正在尝试查询由“Google Play音乐”应用创建的播放列表但未能这样做。我使用本地存储的内容创建了一个播放列表。我使用以下代码进行查询:
Cursor c = managedQuery(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
new String[] {MediaStore.Audio.Playlists._ID,
MediaStore.Audio.Playlists.NAME
}, null, null, null);
这适用于Winamp,但不适用于Google Play音乐。事实上,Winamp不会显示使用Google Play音乐创建的播放列表。但是,Google Play音乐会显示使用Winamp创建的播放列表。我的猜测是,Google Play音乐正在使用自己的数据库来存储播放列表,而其他播放器使用内容提供商和uri MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI来存储播放列表。有没有办法让Google Play音乐创建播放列表?
答案 0 :(得分:14)
我知道这个帖子已经老了,但我也一直在努力解决这个问题。
Google Play音乐会根据此非标准内容URI公开其播放列表
// list all playlists with their ID and Name
Cursor cursor = getContentResolver().query(
"content://com.google.android.music.MusicContent/playlists",
new String[] {"_id", "playlist_name" },
null, null, null);
Google Play音乐内容提供商使用以下列名称
如果没有这个真正有用的应用Content Provider Helper
,我绝不会想到这一点答案 1 :(得分:1)
试试这个。
String[] proj = {MediaStore.Audio.AudioColumns.TITLE,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media._ID};
Uri gMusicUri = Uri.parse("content://com.google.android.music.MusicContent/audio");
Cursor cursor = getApplicationContext().getContentResolver()
.query(gMusicUri,
proj, null, null, null);
答案 2 :(得分:0)
Î尝试查询ContenProvider,就像你在启动谷歌音乐应用程序时可以在Logcat中看到它一样:
getContentResolver()。query(Uri.parse(“content://com.google.android.music.MusicContent/playlists”),null,null,null,null);
但是我没有得到任何结果:-(也许我做错了,之前没有与内容提供商合作太多,或者内容提供者可能不公开其他应用程序。