Mac OS X から HandsFree デバイスをエミュレートしようとしています。
- SDP サービスを Handsfree として正しく宣伝しています
- Androidフォンを「ハンズフリー」デバイスとして表示されるコンピューターにペアリングできます
- いくつかの AT コマンド (AT+BRST、CIND、CMER) を送信して、サービス レベルの接続を確立できます。
- 次に、オーディオ ドライバーをインストールして、デバイスとの間で送受信されるすべてのサウンドをルーティングします。
残念ながら、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 接続を開くことができない理由について何か考えはありますか?