Запрос базы данных Google Play Музыки на Android
Я пытаюсь запросить плейлисты, созданные приложением "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 Music использует свою собственную базу данных для хранения плейлистов, где другие игроки используют Content Provider с uri MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI для хранения своих плейлистов. Есть ли способ получить плейлисты, созданные в Google Play Музыке?
Ответы
Ответ 1
Я знаю, что эта ветка устарела, но я тоже занимаюсь этой проблемой.
Google Play Music предоставляет свои плейлисты в этом нестандартном Content 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 Music использует следующие имена столбцов
- isAllLocal
- playlist_owner_name
- hasLocal
- hasRemote
- hasAny
- KeepOnId
- playlist_art_url
- playlist_share_token
- _id
- _count
- playlist_owner_profile_photo_url
- keeponSongCount
- playlist_description
- playlist_type
- playlist_id
- keeponDownloadedSongCount
- PLAYLIST_NAME
Я бы никогда не понял этого без этого действительно полезного приложения Поставщик поставщика содержимого
Ответ 2
Попробуйте это.
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);
Ответ 3
Î попробовал запросить ContenProvider, как вы можете увидеть его в Logcat при запуске приложения Google для Google:
getContentResolver(). query (Uri.parse( "content://com.google.android.music.MusicContent/playlists" ), null, null, null, null);
но я не получил никакого результата:-( возможно, я делаю s.th. неправильно, не работал много с contentproviders раньше, или, возможно, contentprovider не является общедоступным для других приложений.