2013-07-22 2 views
2

У меня есть устройство Bluetooth 4.0 (BLE) с использованием набора микросхем CC2541, с которым я взаимодействую с помощью базовой платформы Bluetooth iOS.Устройство повторного подключения iOS CoreBluetooth с UUID

Я могу успешно подключиться к устройству с помощью Core Bluetooth, когда устройство находится в режиме обнаружения/рекламы и передает данные на устройство и с него без проблем.

Я поддерживаю коллекцию UUID, устройств, которые я связан с, и я теперь пытаюсь подключиться к одному из этих устройств еще раз с помощью:

CBCentralManager 
- (void)retrievePeripherals:(NSArray *)peripheralUUIDs 

Вызова этой функции, кажется, работает и я получаю обратный вызов моя реализация следующей функции:

CBCentralManagerDelegate 
- (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals 

устройство Я пытаюсь соединиться с это один и только периферийным перечисленным в массиве периферийных устройств, которые передаются этой функции.

Когда я пытаюсь подключиться к этому устройству с помощью моей функции подключения (см. Ниже), соединение не будет инициировано, и я не получаю никаких обратных вызовов вообще на CBCentralManagerDelegate или CBPeripheralDelegate.

- (void) connectPeripheral:(CBPeripheral *)peripheral { 
    NSLog(@"Connecting to peripheral with UUID : %s\r\n",[self UUIDToString:peripheral.UUID]); 
    activePeripheral = peripheral; 
    activePeripheral.delegate = self; 
    [CM connectPeripheral:activePeripheral options:nil]; 
} 

я могу сделать соединение пройти успешно, как описано выше, если я первый поместить устройство в режим обнаружения/рекламы, но это решение не выполнимо. Устройство должно разрешать пересоединение без его установки в режим обнаружения.

Я отметил, что ответ на этот вопрос CoreBluetooth: What is the lifetime of unique UUIDs предлагает мне связать устройство BLE с устройством iOS, но это может зависеть от набора микросхем BLE, используемым устройством является CC2541. Любые советы о том, как сделать сопряжение с устройством, были бы наиболее полезными или действительно ли это необходимый шаг. Я попытался посмотреть WWDC 2012: Advanced Core Bluetooth, который мог бы мне помочь, но с тех пор, как Apple была взломана в четверг, я не могу получить доступ к моему аккаунту, чтобы посмотреть видео.

Пожалуйста, дайте мне знать, если требуется более подробная информация. Устройство Bluetooth стабильно, но оно разрабатывается внутренне. Если изменения могут потребоваться для прошивки, чтобы помочь в процессе сопряжения, я могу передать эту информацию вместе с командой электроники.

ответ

0

Почему вы не попробуете this?

Он указывает сначала, что вам необходимо отправить запрос на характеристику GATT, для которой требуется разрешение GATT_AUTHEN_READ. Тогда ваш CC2541 ответит НЕПРАВИЛЬНОЙ АУТЕНТИФИКАЦИЕЙ. Это запустит внутренний механизм Apple Bonding и попросит ключ. Вы можете ввести ключ доступа, а затем, если устройство и CC2541 успешно спарены, он будет считывать значение признака и вводить ваш обратный вызов.

ПРИМЕЧАНИЕ. Я не разработчик iOS, но я работал с CC2541. Если вы используете пример простого простого примера, то характеристика в simpleProfile character5 требует проверки подлинности. Взгляните на профили/SimpleProfile/simpleGATTprofile.c

Смежные вопросы