我正在實施與獲取當前音樂曲目信息相關的應用程序。當前播放音樂的曲目信息
我使用下面的代碼來獲取:
public class CurrentMusicTrackInfoActivity extends Activity {
public static final String SERVICECMD = "com.android.music.musicservicecommand";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
IntentFilter iF = new IntentFilter();
iF.addAction("com.android.music.metachanged");
iF.addAction("com.android.music.playstatechanged");
iF.addAction("com.android.music.playbackcomplete");
iF.addAction("com.android.music.queuechanged");
registerReceiver(mReceiver, iF);
}
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
String cmd = intent.getStringExtra("command");
Log.v("tag ", action + "/" + cmd);
String artist = intent.getStringExtra("artist");
String album = intent.getStringExtra("album");
String track = intent.getStringExtra("track");
Log.v("tag", artist + ":" + album + ":" + track);
Toast.makeText(CurrentMusicTrackInfoActivity.this, track, Toast.LENGTH_SHORT).show();
}
};
}
那也只是一些手機工作正常。我想實現代碼以獲取所有Android設備(例如HTC和三星設備)中的當前音樂曲目信息。
有沒有辦法做到這一點?
我有一個問題,這個對ICS。我正在爲ICS製作媒體播放器小部件。只要我推出我的第一個小部件,並且是本地播放器播放的一些音樂,我就會在正確的歌曲細節中獲得metachange意圖,並在幾毫秒內獲得playstate改變的意圖,並帶有一些其他歌曲名稱。任何想法如何解決這個問題? – AndroidGuy
提供樣本獲取carrect正在播放歌曲的詳細信息 – kiran
對不起,但我沒有得到你基蘭,我使用上面提到的相同的代碼。我的onReceive被調用兩次,一次用於com.android.music.metachanged&立即用於com.android.music.playstatechanged,但是我從這兩種意圖得到的軌道是不同的。 MetaChanged提供了正確的名稱,但「播放狀態」更改提供了不同的名稱。這隻發生在初次發射。我如何繞過Playstate更改的第一次啓動。 – AndroidGuy