使用IOBluetoothAddSCOAudioDevice打开SCO音频连接

时间:2011-08-20 10:56:24

标签: objective-c iobluetooth

我正在尝试从Mac OS X模拟HandsFree设备。

  1. 我正确宣传我的SDP服务为Handsfree
  2. 我可以将我的Android手机与我的电脑配对,后者被视为“HandsFree”设备
  3. 我可以发送几个AT命令(AT + BRST,CIND,CMER)来建立服​​务级别连接
  4. 然后我安装了一个音频驱动程序,用于将所有传入/传出声音路由到设备
  5. 不幸的是,SCO频道似乎从未打开过。我的Android手机仍在自己的扬声器上发出声音(即:按拨号盘时)。

    当进入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连接的任何想法?

0 个答案:

没有答案