我正在开发一个应用程序,只要用户在 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);
}
}
}
有没有办法从任何音乐播放器接收广播事件。?