6

我正在尝试向我的 android 应用程序添加对耳机/耳机/汽车音响等蓝牙设备的支持,该应用程序允许用户拨打 SIP/VoIP 电话。我试图主要解决使用蓝牙耳机上的按钮接听和结束通话的要求,其他按钮/功能处理很好。

通过我所做的搜索以及到目前为止我阅读的所有文本,我遇到了以下内容 -

  • 到处都建议的一种常见方法是注册到ACTION_AUDIO_STATE_CHANGED. 但这并没有真正帮助我。每次按下蓝牙耳机上的按钮时都会发送它的意图,并且当我们启动蓝牙耳机上的铃声时。
  • 我发现一个非常常见的解决方案是使用蓝牙适配器类。你无能为力。所以再次没有帮助。
  • 我遇到的另一种方法是使用供应商特定的耳机事件。经过一些努力,我能够为特定的 Plantronics 蓝牙耳机使用此功能。支持 Jabra 很重要。
  • 我遇到的另一种方法是与 IBluetoothHeadsetPhone.aidl 绑定,电话应用程序就是这样做的。我可以找到很少的信息,不足以继续实施任何事情。

如果有人做过这样的事情,我认为我面临的问题并不少见,我只是相信它没有得到很好的记录。任何指针、方法、链接将不胜感激。

当我找到我尝试的任何或任何其他方法时,我将尝试添加更多信息。如果您需要更多关于我尝试过的解决方案的信息,请询问详细信息。请提出更改建议,而不仅仅是标记问题。谢谢你的建议。

4

1 回答 1

5

对迟到的帖子感到抱歉。我能够找到解决此问题的方法。这不是简单的修复。

您需要使用 Android 电信框架中的 ConnectionService。在此处和此处查看此链接。在此之后,您的 VoIP 呼叫将像蜂窝呼叫一样进行处理。

于 2018-11-03T06:00:40.590 回答