/ / iOS Bluetooth LEはプログラムで通知を取得できませんが、他のアプリでは実行できます-ios、bluetooth-lowenergy、core-bluetooth

iOS Bluetooth LEはプログラマチックに通知を受けることはできませんが、他のアプリでも使用できます - ios、bluetooth lowenergy、core-bluetooth

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: そこにエラーを記録します