3

Mac OS X から HandsFree デバイスをエミュレートしようとしています。

  1. SDP サービスを Handsfree として正しく宣伝しています
  2. Androidフォンを「ハンズフリー」デバイスとして表示されるコンピューターにペアリングできます
  3. いくつかの AT コマンド (AT+BRST、CIND、CMER) を送信して、サービス レベルの接続を確立できます。
  4. 次に、オーディオ ドライバーをインストールして、デバイスとの間で送受信されるすべてのサウンドをルーティングします。

残念ながら、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 接続を開くことができない理由について何か考えはありますか?

4

0 に答える 0