Я создаю приложение iOS (в Swift), которое выступает в качестве периферийного и центрального периферийного устройства Bluetooth. Мне нужно определить txPower периферийного устройства, но мне не обязательно отправлять его в центральное устройство другого устройства (хотя это было бы замечательно); Я был бы счастлив просто определить txPower периферии на самом устройстве-отправителе.Найти TxPower на периферийной периферии iOS Bluetooth
Я знаю, что я могу определить txPower от конкретных данных производителя, но я не смог понять, как читать данные о конкретных производителях моего устройства, а в рекламе, которую мой центральный собирает, включает только UUID периферийного устройства, а не Специфические данные производителя.
Это, как я создал мой периферийное:
peripheral = CBPeripheralManager(delegate: self, queue: nil)
myService = CBMutableService(type: CBUUID(string: "109F17E4-EF68-43FC-957D-502BB0EFCF47"), primary: true)
peripheral.addService(myService)
Это, как я создал мой центральный:
centralManager.scanForPeripheralsWithServices([myCustomServiceUUID], options: nil)
Тогда в peripheralManagerDidUpdateState:
if peripheral.state == CBPeripheralManagerState.PoweredOn {
self.peripheral.startAdvertising([CBAdvertisementDataServiceUUIDsKey: [myService.UUID] ])}
... в centralManagerDidUpdateState:
if central.state == CBCentralManagerState.PoweredOn {
centralManager.scanForPeripheralsWithServices([myCustomServiceUUID], options: [
CBCentralManagerScanOptionAllowDuplicatesKey : NSNumber(bool: true)
])}
И полученный advertisementData NSDictionary в didDiscoverPeripheral делегата:
["kCBAdvDataServiceUUIDs": (
"109F17E4-EF68-43FC-957D-502BB0EFCF47"), "kCBAdvDataIsConnectable": 1]
Опять же, любое решение, которое позволяет мне добавить Производитель конкретных данных в рекламном пакете моего Peripheral, либо позволяет мне читать Производитель Периферического Удельным Данные или txPower на отправляющем устройстве были бы действительно потрясающими. Большое спасибо заранее!
Я создаю код, чтобы найти расстояние от устройства BLE. и я получаю немного данных в рекламе. а не ключ kCBAdvDataTxPowerLevel. так как найти значение TxPower? вы еще это выяснили? или любой другой способ его найти? – Moxarth