2014-05-05 5 views
1

Что я пытаюсь сделать, это использовать Центр уведомлений Apple (ANCS) с моего iPhone на моем Mac. Чтобы мой Mac появился в настройках Bluetooth в iPhone, мне, видимо, нужно использовать услугу.Как пользоваться услугой с помощью IOBluetooth/CoreBluetooth?

Что я пробовал до сих пор, это инициировать CBPeripheralManager на моем Mac, добавить к нему службу ANCS и начать рекламу. Это не похоже на это, так как мой Mac не отображается в настройках Bluetooth для iPhone. То, что я также пробовал, - инициировать CBCentralManager и начать сканирование, с UCID ANCS в ключе CBCentralManagerScanOptionSolicitedServiceUUIDsKey, который тоже не работает.

Есть ли у кого-нибудь идеи о том, как это сделать? Я потратил много часов на просмотр видеороликов WWDC и просмотр документации Apple, но кроме некоторых неясных упоминаний о «призыве к сервису» я не могу его найти.

Спасибо!

+0

Я играл с этим неделю назад, и я не мог заставить iPhone рекламировать UCID ANCS, если только я не запускал приложение, которое рекламировало другую (любую другую) службу BLE. Мне это не кажется правильным, но это то, что я нашел. Надеюсь, кто-то еще может предложить некоторые ответы/идеи. – Paulw11

+0

Я думаю, что KhaosT поделился именно кодом, который вы ищете https://github.com/KhaosT/ANCS- Mac Существует много других реализаций. – allprog

+0

@ Paulw11 нет другого способа, кроме рекламы рекламы по телефону. iOS автоматически запрашивает ANCS, и ANCS недоступен другими способами. Вы делали все правильно. Вы можете использовать любое приложение, например. LightBlue для рекламы. Содержание рекламы не имеет значения. – allprog

ответ

4

Когда устройство Bluetooth LE объявляет, оно содержит определенные данные в своем рекламном пакете. Это может переполняться в так называемые данные расширенного запроса ответа (EIR), которые может запросить сканирующее устройство.

Чтобы воспользоваться услугой побуждения, один должен включать ключевые 0x15 (маркировку «Список 128-битной Service тендерной UUID, см here) и АНС UUID 7905F431-B5CE-4E99-A40F-4B1E122D00D0.

я смог получить эту работу на встраиваемых платформах и прошивкой, но не пробовал его на OSX Однако, вы должны быть в состоянии обратиться к системе, чтобы добавить данные рекламные в систему с помощью ключа, вы упомянули выше:.

CBCentralManager *manager = [[CBCentralManager alloc] initWithDelegate:self 
                   queue:nil]; 
[manager scanForPeripheralsWithServices:nil 
           options:@{ 
    CBCentralManagerScanOptionSolicitedServiceUUIDsKey:@[ 
     [CBUUID UUIDWithString:@"7905F431-B5CE-4E99-A40F-4B1E122D00D0"]]}]; 

Это проходит словарь, содержащий, что ключ в сочетании с массивом одного объекта CBUUID для UUID ANCS.

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