Android獲取系統播放音樂資訊
阿新 • • 發佈:2018-12-14
如題,需要獲取播放的音樂資訊,原理是播放音樂的時候會發送四種廣播,因此可以使用廣播接收器攔截一下廣播…… 但是!!!!當系統正在播放音樂的時候,我還不知道怎麼獲取音樂資訊QAQ 要是哪位知道怎麼獲取,求告知QAQ
MusicBroadcastReceiver mbr = null; class MusicBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { artistName = intent.getStringExtra("artist"); musicName = intent.getStringExtra("track"); Log.d(TAG, "onReceive: " + intent.toString()); tvMainMusicArtist.setText("— " + artistName + " —"); tvMainMusicName.setText(musicName); //此處是用來檢視intent中包含的key Bundle bundle = intent.getExtras(); Set<String> set = bundle.keySet(); for (Iterator iterator = set.iterator(); iterator.hasNext(); ) { String key = (String) iterator.next(); Object value = bundle.get(key); Log.i("IntentActivity", "key:" + key + " value:" + value); } } }
註冊一下廣播
@Override protected void onResume() { mbr = new MusicBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.android.music.metachanged"); intentFilter.addAction("com.android.music.queuechanged"); intentFilter.addAction("com.android.music.playbackcomplete"); intentFilter.addAction("com.android.music.playstatechanged"); registerReceiver(mbr, intentFilter); }
最後別忘了登出
protected void onDestroy() {
if (mbr != null) {
unregisterReceiver(mbr);
}
super.onDestroy();
}
最後,附intent中的jian鍵值對: