从所有可用的Android设备获取当前播放曲目信息

时间:2015-06-22 16:33:44

标签: android android-mediaplayer

我很乐意从所有可用的Android设备获取当前播放曲目信息。因此我已经尝试了这个代码,它在模拟器或任何nexus手机上工作正常但是我在xperia手机上试用了它它会工作,它不会得到任何信息! 我认为它无法检测随身听媒体播放器。

  public void onCreate() {
    super.onCreate();

    IntentFilter iF = new IntentFilter();
    iF.addAction("com.android.music.metachanged");
    iF.addAction("com.android.music.playstatechanged");
    iF.addAction("fm.last.android.metachanged");
    iF.addAction("fm.last.android.playbackpaused");
    iF.addAction("com.sec.android.app.music.metachanged");
    iF.addAction("com.nullsoft.winamp.metachanged");
    iF.addAction("com.nullsoft.winamp.playstatechanged");
    iF.addAction("com.amazon.mp3.metachanged");
    iF.addAction("com.amazon.mp3.playstatechanged");
    iF.addAction("com.miui.player.metachanged");
    iF.addAction("com.miui.player.playstatechanged");
    iF.addAction("com.real.IMP.metachanged");
    iF.addAction("com.real.IMP.playstatechanged");
    iF.addAction("com.sonyericsson.music.metachanged");
    iF.addAction("com.sonyericsson.music.playstatechanged");
    iF.addAction("com.rdio.android.metachanged");
    iF.addAction("com.rdio.android.playstatechanged");
    iF.addAction("com.samsung.sec.android.MusicPlayer.metachanged");
    iF.addAction("com.samsung.sec.android.MusicPlayer.playstatechanged");
    iF.addAction("com.andrew.apollo.metachanged");
    iF.addAction("com.andrew.apollo.playstatechanged");
    iF.addAction("com.htc.music.metachanged");
    iF.addAction("com.htc.music.playstatechanged");
    iF.addAction("com.spotify.music.playbackstatechanged");
    iF.addAction("com.spotify.music.metadatachanged");
    iF.addAction("com.rhapsody.playstatechanged");

    registerReceiver(mReceiver, iF);
}

public BroadcastReceiver mReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        boolean playing = intent.getBooleanExtra("playing", false);
        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.i("tag", "This is the track information:");
        Log.v("tag", artist + ":" + album + ":" + track);
        Toast.makeText(TrackInformations.this, track, Toast.LENGTH_SHORT).show();

我认为我错过了一些东西,因为声音云播放器也是不可检测的。

1 个答案:

答案 0 :(得分:0)

我认为Xperias有一个不同的Walkman应用程序。

我测试了这个意图并且有效:

com.sonyericsson.music.playbackcontrol.ACTION_TRACK_STARTED

意图额外不同,轨道信息在地图上,您需要调试它并查看您需要的内容。

来自Xperia Walkman应用程序的清单(如果您需要更多过滤器):

http://pastebin.com/cDNJJYGc

玩得开心!

相关问题