Как определить Apple Watch как периферийное устройство Bluetooth - PullRequest
0 голосов
/ 02 июня 2018

Я использую CoreBluetooth для составления списка подключенных устройств, предлагающих услугу «ЧСС» с помощью метода CBCentralManager retrieveConnectedPeripheralsWithServices.

NSArray *services = @[[CBUUID UUIDWithString:BT_DEVICEINFO_SERVICE_UUID],
                      [CBUUID UUIDWithString:BT_HEARTRATE_SERVICE_UUID]];
NSArray *connectedDevices = [_centralMana retrieveConnectedPeripheralsWithServices:services];

В этот список включены мои Apple Watch в качестве CBPeripheral, но после подключения к connectPeripheral: это периферийное устройство не предоставляет данные о частоте сердечных сокращений, как это делают обычные мониторы сердечного ритма Bluetooth, приведенные ниже:

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
{
    if ([service.UUID isEqual:[CBUUID UUIDWithString:BT_HEARTRATE_SERVICE_UUID]])  {
        // Apple Watch peripheral never gets here.

        for (CBCharacteristic *aChar in service.characteristics){
            // Request heart rate notifications
            if ([aChar.UUID isEqual:[CBUUID UUIDWithString:BT_HRMEASUREMENT_CHARACTERISTIC_UUID]]) {
                [_currentDevice setNotifyValue:YES forCharacteristic:aChar];
            }
        }
    }
}

То, что я пытаюсь сделать, это определить Apple Watch перед подключением к нему, чтобы я мог отфильтровать его из списка доступных устройств для измерения частоты пульса.К сожалению, CBPeripheral, кажется, предлагает только строку «имя» и «UUID» перед подключением.

Кто-нибудь знает способ идентификации Apple Watch здесь, или, возможно, отфильтровать его при использовании метода retrieveConnectedPeripheralsWithServices

1 Ответ

0 голосов
/ 02 июня 2018

Оказывается, мне просто нужно было понять, что спецификатор служб относится к оператору поиска ИЛИ.Т.е. он возвращает устройства, которые предлагают ЛЮБУЮ из услуг, а не только устройства, которые предлагают все из них.

Apple Watch в конце концов не рекламировали службу сердечного ритма!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...