iOSプログラムをカスタムBluetooth LEデバイスと通信させようとしています。接続して、すべてのサービスを読み、すべての CBCharacteristic
各サービスのオブジェクト。
特定のときに通知を受信しようとしています CBCharacteristic
更新されます。の CBCharacteristic.properties
0x10(通知)に設定されますが、 CBCharacteristic.isNotifying
偽です。
次のコード行を呼び出した後:
myDevice.peripheral.setNotifyValue(true, forCharacteristic: myChar)
経由で通知を受け取ることを期待しています CBPeripheralDelegate
関数:
func peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {}
しかし、それは決して呼び出されません。
また、 LightBlueExplorerアプリ から PunchThrough.com 通知を受け取ることができるので、それが可能であることがわかります。私がしていないことをしているLightBlueアプリは何ですか?
誰かがこれに似たものを見たことがありますか?
参考までに、デバイスは WLT2564M Bluetoothモジュール。また、私はを使用して値を読み取ることができます
myDevice.peripheral.readValueForCharacteristic(myChar)
問題なし。
回答:
回答№1は1チェックするべきいくつかの事柄:
- その
peripheral
プロパティは、その使用期間中存続する必要があります - あなたはそれに接続している必要があります(そしてその間に切断されていませんでした)
- を確認してください
delegate
正しく設定されている - ログを確認する
- 必ず実装してください
peripheral:didUpdateNotificationStateForCharacteristic:error:
そこにエラーを記録します