Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从所有可用的android设备获取当前播放曲目信息_Android_Android Mediaplayer - Fatal编程技术网

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

从所有可用的android设备获取当前播放曲目信息,android,android-mediaplayer,Android,Android Mediaplayer,我很想从所有可用的android设备上获取当前的播放曲目信息。因此,我已经试用过这段代码,它在模拟器或任何nexus手机上都可以正常工作,但一旦我在xperia手机上试用,它就不起作用了,而且没有任何信息回来! 我认为它无法检测到随身听媒体播放器 public void onCreate() { super.onCreate(); IntentFilter iF = new IntentFilter(); iF.addAction("com.android.musi

我很想从所有可用的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();

我想我遗漏了一些东西,因为soundcloud播放器也无法检测到。

我认为这是因为Xperia有一个不同的Walkman应用程序

我出于这个目的进行了测试,它可以工作:

com.sonyericsson.music.playbackcontrol.ACTION_TRACK_STARTED
意图附加是不同的,轨迹信息在地图上,你需要调试它,看看你需要什么

Xperia Walkman应用程序中的清单(如果您需要更多筛选器):


玩得开心

没有要求任何
意图
动作起作用,也没有要求其他玩家发送任何与曲目信息相关的广播。你能解释一下响应的plz?Thanx吗:)我现在试过了,它起作用了,但对V/tag的所有内容都返回null﹕ null:null:null您需要调试意图并查看从何处获取它们,因为您需要的字符串在附加中的映射中,而不是在您正在使用的附加字符串中。抱歉,但我确实是一个乞丐,我应该如何调试意图?请遵循此指南。在字符串action=intent.getAction()中放置断点;并评估您收到的意向