Как определить serviceUUID обнаруженного периферийного устройства - PullRequest
1 голос
/ 11 июля 2020

В моем приложении будет массив serviceUUID, с помощью которого можно будет обнаруживать выбранные периферийные устройства. Как только периферийное устройство из этого набора обнаружено, как мне определить, какой serviceUUID он имеет / должен был разрешить его обнаружение? UUID идентификатора периферийного устройства, похоже, отличается от serviceUUID, который я дал ему в моем тестовом коде.

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете прочитать обнаруженные UUID сервисов из рекламы, но они могут появиться в двух местах в зависимости от того, исходит ли реклама от фоновых устройств iOS (которые передают в «области переполнения»).

Попробуйте что-то вроде этого, чтобы получить список UUID служб из обоих мест:

    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        var detectedServiceUuids = advertisementData[CBAdvertisementDataServiceUUIDsKey] as? [CBUUID] ?? []
        if let detectedOverflowUuids = advertisementData[CBAdvertisementDataOverflowServiceUUIDsKey] as? [CBUUID] {
            detectedServiceUuids.append(contentsOf: detectedOverflowUuids)
        }
        for detectedServiceUuid in detectedServiceUuids {
            print("I detected serviceUuid: \(detectedServiceUuid)")
        }
    }
...