0

如果音乐在后台播放,我的应用程序会显示音乐元数据。在 ICS 设备中,即使手动启动应用程序后,广播接收器也没有注册。它适用于以下版本。我在下面添加了一部分代码,我想在清单文件中添加任何意图操作吗?

IntentFilter iF = new IntentFilter();
// Android Stock Music App / Google Play Music App
 iF.addAction("com.miui.player.metachanged");
// HTC music player`enter code here`
iF.addAction("com.htc.music.metachanged");
// WinAmp
iF.addAction("com.nullsoft.winamp.metachanged");
// Samsung Music App
iF.addAction("com.sec.android.app.music.metachanged");
registerReceiver(mReceiver, iF);

private BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String track =intent.getStringExtra("track");
    };
}
4

1 回答 1

0

您提供的代码有效,但它需要一个活动(您是否使用活动)。在 Android 3.1+ 上,应用程序安装在“停止”状态。在这种状态下,广播接收器不会工作,直到用户从应用程序手动启动一个活动。如果用户从设置中强制停止应用程序,应用程序将返回到此“停止”状态。

因此,向您的项目添加一个活动,启动一次,然后查看您的接收器是否工作。否则尝试在清单文件中注册广播接收器..

希望解释对你有用。

于 2012-06-13T05:27:51.790 回答