我正在实施与获取当前音乐曲目信息相关的应用程序。当前播放音乐的曲目信息
我使用下面的代码来获取:
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