我正在尝试从 Mac OS X 模拟 HandsFree 设备。
- 我正确地将我的 SDP 服务宣传为免提
- 我可以将我的 Android 手机与被视为“免提”设备的计算机配对
- 我可以发送几个 AT 命令(AT+BRST、CIND、CMER)来建立服务级别连接
- 然后我安装一个音频驱动程序来路由所有传入/传出的声音到/从设备
不幸的是,SCO频道似乎从未打开过。我的安卓手机仍然在自己的扬声器上发出声音(即:按下拨号盘时)。
当进入 Mac OS X 的声音首选项时,我可以将我的设备视为输入/输出设备,但声音级别永远不会改变。
这是我的代码:
(void)rfcommChannelData:(IOBluetoothRFCOMMChannel*)rfcommChannel data:(void *)dataPointer length:(size_t)dataLength
{
... STATE MACHINE GOES HERE and SEND AT COMMANDS ...
... AT CMER OK RECEIVED ...
ret = IOBluetoothAddSCOAudioDevice([[rfcommChannel getDevice] getDeviceRef], NULL);
if (ret != kIOReturnSuccess ){
IOBluetoothRemoveSCOAudioDevice([[rfcommChannel getDevice] getDeviceRef]);
NSLog(@"%@", @"Deleting previously audio device");
ret = IOBluetoothAddSCOAudioDevice([[rfcommChannel getDevice] getDeviceRef], NULL);
if (ret != kIOReturnSuccess) {
NSLog(@"%@", @"Can't install Audio Driver");
}
}
关于为什么系统安装并报告了音频驱动程序但无法打开 SCO 连接的任何想法?