2015-03-30 4 views
0

Мы работаем над проектом bluetooth, используя cordova в качестве инструмента для разработки xplatform.Уведомления Bluetooth LE, не полученные на iOS

Мы разрабатываем для android и iOS и записываем плагин BLE для самих кордонов.

На Android все работает нормально. Теперь возникает проблема:

На iOS мы можем читать/писать и даже подписываться на уведомления.

Проблема возникает, когда мы пытаемся получить обновленное значение, после чего ничего не происходит.

Короче

- connect to device 
- discover services 
- discover characterics 
- subscribe to notification characteristic 

это работает хорошо:

-(void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error 

становится называется, и characteristic.isNotifying является верно

При выполнении простой операции чтения на характеристики ,

-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error 

callback вызывается.

Здесь возникает проблема:

При обновлении значения от периферийного устройства, обратный вызов просто не дозвонились.

У нас нет никакой подсказки, потому что ошибок не возникает вообще, так, может быть, кто-то знает способ отладки этой проблемы?

Примечание: при подключении к периферийному устройству с помощью внешнего инструмента, подписываясь на характеристику и обновляя ее значение. Уведомление получено. Это спецификация iOS.

ответ

0

Оказалось, что проблема была: Мы вызывали [периферийный наборNotificaiton: etc] на временное периферийное устройство, полученное обратным вызовом. Когда мы устанавливаем уведомление о сохраненном периферийном объекте onConnected, принимаются уведомления. (self.peripheral)

Нет, это был не ответ, он работал, потому что мы перезапустили устройство iOS. Похоже, в этой дерьмовой яблочной вещи есть какая-то ошибка.

Кто-нибудь знает, как программно перезапустить bluetooth?

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