Запрос к базе данных Google Play Music в Android - PullRequest
12 голосов
/ 12 марта 2012

Я пытаюсь запросить плейлисты, созданные приложением "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 Music. Фактически, Winamp не отображает плейлисты, созданные с помощью Google Play Music. Однако в Google Play Music отображаются плейлисты, созданные с помощью Winamp. Я предполагаю, что Google Play Music использует свою собственную базу данных для хранения списков воспроизведения, где другие игроки используют контент-провайдера с uri MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI для хранения своих списков воспроизведения. Есть ли способ создать плейлисты, созданные с помощью Google Play Music?

Ответы [ 3 ]

14 голосов
/ 18 июня 2013

Я знаю, что эта ветка устарела, но я тоже столкнулся с этой проблемой.

Google Play Music предоставляет свои плейлисты по этому нестандартному 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
  • keeponSount1032 * playlist_description
  • playlist_type
  • playlist_id
  • keeponDownloadedSongCount
  • playlist_name

Я бы никогда не понял этого без этого действительнополезное приложение Помощник контент-провайдера

1 голос
/ 23 мая 2012

Попробуйте это.

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);
0 голосов
/ 03 апреля 2012

Î попытался запросить ContenProvider, как вы можете видеть его в Logcat при запуске приложения Google Music:

getContentResolver (). Query (Uri.parse ("content: //com.google.android.music.MusicContent/playlists"), null, null, null, null);

но я не получил результата :-( возможно, я делаю что-то не так, раньше не работал с поставщиками контента, или, возможно, поставщик контента не является общедоступным для других приложений.

...