Я пытаюсь установить Bluetooth-соединение между двумя устройствами iOS. Идея состоит в том, что одно устройство предлагает услугу, и к ней подключаются несколько устройств:
Устройство А (служба): пользователь просматривает презентацию
Устройство B (несколько клиентов): пользователь смотрит презентацию, никакого взаимодействия
В моем понимании тот, кто предлагает услугу, должен рекламировать ее и, соответственно, быть периферийным, создав CBPeripheralManager и внедрив CBPeripheralManagerDelegate -> Device A.
С другой стороны, есть несколько центральных устройств, которые сканируют периферийные устройства, используя CBCentralManager и реализуя CBCentralManagerDelegate. После установления соединения они отправляют запросы на чтение и запись на периферийное устройство, используя класс CBPeripheral и CBPeripheralDelegate -> Device B.
И теперь я запутался: насколько я понял, устройство А не может отправлять информацию напрямую устройству Б и даже не распознает, было ли соединение установлено или потеряно. Но клиенты (устройство B) могут читать и записывать данные и получать уведомления о подключении и отключении.
Поэтому моей первой идеей было поменяться ролями. Теперь центральное устройство предлагает услугу, сканируя устройства, которые сообщают, что они хотят использовать эту услугу (?!?), и несколько периферийных устройств могут подключаться к одному центральному устройству. Уже звучит так, как будто это должно быть неправильно, верно? И вот беда: теперь периферийные устройства (пользователи, которые смотрят презентацию) больше не получают уведомления, если соединение было установлено или потеряно (аааааааа).
Теперь к вопросу: есть ли хороший способ сделать устройство iOS периферийным устройством и распознавать подключения и отключения (которые должны включать отключения по расстоянию и т. д.)?
ДОБАВЛЕНО: в WWDC 2012 Session 705 (ссылка на слайды презентации) центральные методы Упоминаются :didConnect и Central:didDisconnect. Но даже в бета-документации CBPeripheralManagerDelegate для iOS 7 эти методы не упоминаются. Может быть, это тупик, и Apple сейчас смеется надо мной...
Спасибо за любую помощь!
Бенджамин