背景:我有一台A2DP / AVRCP蓝牙耳机(诺基亚BH-505),可以用来收听播客和音乐。当然,我会使用不同的应用程序收听这些内容。蓝牙耳机具有一些与音频相关的“命令”(AVRCP)按钮-具体来说:“下一个曲目”,“上一个曲目”和“播放/暂停”命令,我安装的音乐播放器之一(子午线)始终会收到命令-即使该命令未处于活动状态也是如此。因此,当我单击打算暂停播客(DoggCatcher)的“播放/暂停”时,子午线被激活,并开始与播客一起播放音乐。

两个播放器都设置为使用耳机:DoggCatcher已打开“绑定到耳机”,而子午线已打开“耳机按钮”。我目前在GT-S5570上使用无根的股票Android 2.2.1,但将来可能会生根并升级到2.3 CyanogenMod(或诸如此类)。 general:



Android如何确定哪个应用对这些命令做出反应?我什至对一个非常技术性的答案也很感兴趣。

在实用方面,我感兴趣:


我是否必须摆弄每个应用程序设置确定哪个应用程序接受命令,或者有某种通用的方法来确定此命令? (正如在另一个问题中被部分问到的一样)

此问题与类似问题有何不同:


“如何设置Bluetooth Remote上的“播放”按钮行为” -仅是实用的,侧重点不同的,到目前为止还没有答案,我也对可能需要生根或自定义固件(尤其是CyanogenMod)的答案感兴趣。
更改用于处理耳机控制的默认应用程序-确切的问题已得到解决,但不能以回答我的问题的方式进行,尽管确实提供了有关工作原理的一些提示。
如何使按钮保持打开状态我的耳机控制的不是股票音乐播放器吗? -在实用方面有部分相似的问题,但不着重于解释其实际工作方式,唯一的答案集中在我不询问的部分(仅使一个应用程序接收命令)。
为什么要全部声音应用程序一次获得蓝牙按钮事件-非常相似,但是询问一个特定问题(所有媒体播放器都获得AVRCP命令)


评论

我确实设法从一个Android开发人员博客中找到了与此相关的一些良好信息-讨论了应由2.2中的应用程序实现的正确方法:“允许应用程序互相播放nice(r):处理远程控制按钮”

在2016年,这仍然是一个问题-.-从iOS移出,这可能是到目前为止对我来说android最令人讨厌的部分:/

有关? android.stackexchange.com/q/218823/693

#1 楼

您已在链接的问题之一中提到了media-button-router,它试图确定当前正在播放音乐的应用程序并将AVRCP事件发送给它。此外,它还列出了所有已安装的声明监听AVRCP事件的应用程序。由于这个原因(或其他原因),无法通过媒体按钮路由器对其进行控制。我知道例如可以通过AVRCP来控制“音乐无限”,因为我在用户评论中看到了它,并且我也能够使其运行一次,但是不幸的是它无法复制。因此,在这些情况下,我们似乎必须等待带有AVRCP事件处理的清晰实现的应用程序更新。

根据media-button-router的Wiki,“ Media Button Intent处理是通过有序广播完成的,并且每个应用都会设置自己的接收优先级。”因此,也许可以编写一个显示这些优先级的应用程序,并且实际上可以让您确定启动哪个应用程序。但是,我对这种应用程序一无所知。

#2 楼

他们终于添加了一个部分来回答这个确切的问题:https://developer.android.com/guide/topics/media-apps/mediabuttons.html

#3 楼

也许这会有所帮助:

Samsung S5->蓝牙接收器+入耳式电话插头

我正在使用Samsung S5,首先是7digital app下载和播放音乐。然后,我更改并使用了Cloudplayer。但是每次Clouplayer播放时,当我按下蓝牙接收器上的“暂停/播放”按钮时,我的7digital应用程序都将开始播放音乐。我无法更改任何设置来更改对Cloudplayer的蓝牙播放/暂停。然后,我删除了所有7digital下载的音乐,然后重试。问题解决了!播放/暂停现在已通过某种方式链接到Cloudplayer。

#4 楼

您的BT设备没有问题。与手机配对后,蓝牙耳机会播放从手机发起的有效A2DP流。如果它是手机上的标准媒体播放器,则它可以对所有AVRCP控制命令做出反应,例如播放暂停跳过,前进等。现在,当您在网络上播放某些内容或某些未通过AVRCP实现所有此类控件的播放器时, BT Headset仍然是一个活跃的A2DP流。它将向您的手机发送AVRCP控制消息。现在是您的手机,在大多数情况下,应该将这些命令路由到相应的应用程序到活动的A2DP流媒体源,或者在您的情况下,您的手机仍将AVRCP命令转发到默认音乐播放器。

最好的选择是尝试配置您的手机,前提是您所播放的源确实支持AVRCP控制。如果没有,那么您将无能为力。如果确实如此,则Mobile绝对应允许您的活动A2DP流源处理这些AVRCP命令。

#5 楼

此应用程序为“媒体按钮路由器”
https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr