2015-04-12 26 views
0

我的问题是,当我尝试将接收器注册到音乐播放器广播接收器仅

IntentFilter iF = new IntentFilter(); 
iF.addAction("com.android.music.metachanged"); 
iF.addAction("com.android.music.playstatechanged"); 
registerReceiver(mReceiver, iF); 

当任何玩家运行此接收器启动。我只想在默认音乐播放器更改的情况下收到通知。 如何获得默认播放器的独特动作?

+0

您究竟想要达到什么我不明白。你的应用做什么? – Squonk

+0

我正在为设备音乐播放器开发一个控制器,这个控制器被链接到服务而不是活动(浮动窗口),所以我需要跟踪和控制音乐播放器,而不是每个音乐播放器。这个接收器会分散我的注意力。 – iKilany

回答

0

发生这种情况是因为您正在监听MusicPlayer操作而不是应用程序包名称。所有音乐播放器午餐采取相同的行动com.android.music.playstatechanged

您需要使用应用程序的包名称过滤此操作。我还没有用音乐播放器自己尝试过,但试试看。在接收器中添加此检查线。您可以用任何其他软件包替换此软件包名称以用于任何应用程序

if (intent.getAction().substring(0, action.lastIndexOf(".")).equals("com.google.android.music")) { 

} 
+0

不幸的是无法正常工作 – iKilany

+0

@iKilany通过更改当前软件包名称及其软件包名称来尝试与设备上的其他音乐播放器进行调试,以确定它是否正常工作 –

+0

我认为我这样做了,可能是我无法理解最后的评论正确 – iKilany