2

我正在开发一个应用程序,只要用户在 android 中启动或停止音乐播放器,它就应该执行操作。我研究了它并找到了一种方法。但它只接收来自默认音乐播放器的事件。其他流媒体播放器如 Rdio、last.fm 被抛在了后面。

我使用的代码

清单.xml

<receiver
        android:name=".MediaStateReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.android.music.playstatechanged" />
        </intent-filter>
</receiver>

MediaStateReceiver.java

public class MediaStateReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {
    LogUtil.print("broadcast event recieved " + intent.getAction());
    if(intent.hasExtra("playing")) {
        Intent mediaIntent = new Intent(context, MusicStateChangeService.class);
        mediaIntent.putExtra("MUSIC_STATE", true);
        mediaIntent.putExtra("playing",intent.getBooleanExtra("playing",false));
        context.startService(mediaIntent);
        }

    }
}

有没有办法从任何音乐播放器接收广播事件。?

4

0 回答 0