我正在开发一个应用程序,我需要通过蓝牙协议将呼叫从一个设备转移到另一个设备(即,我想要像设备将呼叫转移到免提的方式)。有任何想法吗?
问问题
16076 次
1 回答
6
一般你不能。Android 蓝牙堆栈实现了几个蓝牙配置文件,包括HFP和A2DP。Android 是两个配置文件的音频源,它将音频流式传输到连接的耳机。耳机应实现免提单元 ( HF ) 功能和 Android 音频网关 ( AG ) - 如Bluetooth.org所述。
现在,您希望在设计上支持 AG 的 Android 设备上具有 HF 功能。您需要为设备实施 HFP 配置文件(HF 端),实际上您希望将其用作耳机。看看轮廓模型。HFP 基于 RFCOMM(Android API 支持)和 SDP(API 中不存在)。您将无法从BlueDroid访问堆栈层上的某些部分(修改 SDP 等)。因此,您的手机不能假装是具有 HF 功能的耳机。
当然,您可以通过 RFCOMM 发送所有内容(据我所知,这是异步的),但 Android 蓝牙 API 对此没有直接支持。使用 RFCOMM 实现需要SCO 链接(SCO 套接字),它也可能隐藏在 Android OS 堆栈层中(找不到通过 API 创建此类套接字的方法)。
于 2016-06-23T15:03:50.780 回答