Я пытаюсь эмулировать устройство HandsFree из Mac OS X.
- Я правильно рекламирую свою услугу SDP как Handsfree
- Я могу подключить свой телефон Android к компьютеру, который называется устройством «HandsFree»
- Я могу отправить пару 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");
}
}
Есть идеи, почему Audio Driver установлен и сообщается системой, но не может открыть соединение SCO?