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