【发布时间】:2017-06-23 13:03:10
【问题描述】:
我正在开发我的应用程序,我想在其中获取在任何媒体应用程序上播放的歌曲的详细信息。 我没有获取当前正在播放歌曲详细信息(如歌曲 ID、艺术家 ID、专辑 ID)的 Google Play 音乐应用的数据。
我试过下面的代码:
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("com.android.music.metachanged");
intentFilter.addAction("com.android.music.playstatechanged");
intentFilter.addAction("com.android.music.playbackcomplete");
intentFilter.addAction("com.android.music.queuechanged");
intentFilter.addAction("com.samsung.sec.android.MusicPlayer.metachanged");
intentFilter.addAction("com.spotify.music.playbackstatechanged");
intentFilter.addAction("com.spotify.music.metadatachanged");
intentFilter.addAction("com.apple.android.music.metachanged");
intentFilter.addAction("com.apple.android.music.playstatechanged");
intentFilter.addAction("com.rdio.android.metachanged");
intentFilter.addAction("com.rdio.android.playstatechanged");
//register the intentfilters into the reciever
registerReceiver(mReceiver,intentFilter);
这是我的接收器:
BroadcastReceiver mReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, final Intent intent) {
String action = intent.getAction();
//Bundle bundle=intent.getExtras();
String cmd = intent.getStringExtra("command");
Log.v("tag ", action + " / " + cmd);
//not getting the song id in the google play music and album_id and artist id in both
final String song_id=String.valueOf(intent.getLongExtra("id", 0));
final String album_id= String.valueOf(intent.getLongExtra("album_id",0));
final String artist_id= String.valueOf(intent.getLongExtra(MediaStore.Audio.Artists._ID,0));
final String title=intent.getStringExtra("track");
final String playlist_id= String.valueOf(intent.getLongExtra(MediaStore.Audio.Playlists._ID,0));
final String playlist_name=intent.getStringExtra(MediaStore.Audio.Playlists.NAME);
final String artist=intent.getStringExtra(MediaStore.Audio.AudioColumns.ARTIST);
final String album=intent.getStringExtra(MediaStore.Audio.AudioColumns.ALBUM);
}
};
在默认播放器中获取歌曲详细信息,而不是在 google play 音乐中。
【问题讨论】:
标签: android