2015-05-18 2 views
0

Я хочу определить, подключен ли я к моему парному устройству iPhone. Мне нужно проверить его с регулярным интервалом (скажем, 5 секунд). В настоящее время я использую среду ExternalAccessory для ее идентификации, но реализованный код не предоставляет мне список парных iPhone.Обнаружение парного iPhone с использованием инфраструктуры ExternalAccessory?

код, который я реализовал

- (EASession *)openSessionForProtocol:(NSString *)protocolString 
{ 
    NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager] 
          connectedAccessories]; 
    EAAccessory *accessory = nil; 
    EASession *session = nil; 

    for (EAAccessory *obj in accessories) 
    { 
     if ([[obj protocolStrings] containsObject:protocolString]) 
     { 
      accessory = obj; 
      break; 
     } 
    } 

    if (accessory) 
    { 
     session = [[EASession alloc] initWithAccessory:accessory 
              forProtocol:protocolString]; 
     if (session) 
     { 
      [[session inputStream] setDelegate:self]; 
      [[session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] 
              forMode:NSDefaultRunLoopMode]; 
      [[session inputStream] open]; 
      [[session outputStream] setDelegate:self]; 
      [[session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] 
               forMode:NSDefaultRunLoopMode]; 
      [[session outputStream] open]; 
     } 
    } 

    return session; 
} 

The NSArray * принадлежности = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories]; возвращает мне 0 устройств. Я боюсь, если этот метод вернет парные устройства Bluetooth или нет.

Мое требование Как уже упоминалось выше, я хочу определить, подключен ли я к моему парному устройству iPhone. Вы можете предложить мне альтернативы для выполнения этого требования. Заранее спасибо.

ответ

0

устройства iOS соединяются друг с другом с помощью Bluetooth 4.0 (BLE), к которому осуществляется доступ с помощью CoreBluetooth framework. Документы от Apple довольно хороши для этой технологии и проводят через процесс подключения как центральное, так и периферийное устройство.

Внешний аксессуар, с другой стороны, используется для связи с устройствами, использующими более старые версии Bluetooth, например. Bluetooth 2.0. Это более ранняя структура и более подвержена ошибкам, которые трудно преодолеть. Кроме того, предоставление приложения, использующего BLE, очень просто, тогда как Apple довольно осторожно относится к приложениям, использующим более старую версию Bluetooth из-за потребления аккумулятора устройства (отсюда часть LE (Low Energy) BLE (Low Energy Low)).

Использование Core Bluetooth с документацией Apple должно быть довольно легко идентифицировать подключенные устройства iOS и общаться с ними.