我正在開發一個應用程序,該應用程序應訂閱多個BLE特徵。如何使用Android訂閱多個BluetoothLE特徵
但無論我做什麼,我只收到來自一個特徵的更新值。
下面是代碼:
BluetoothGattCharacteristic characteristicVel = gatt.getService(BleDefinedUUIDs.Service.KOMMMODUL_SERVICE).getCharacteristic(BleDefinedUUIDs.Characteristic.VELOCITY);
gatt.setCharacteristicNotification(characteristicVel, true);
BluetoothGattDescriptor descriptorVel = characteristicVel.getDescriptor(
BleDefinedUUIDs.Descriptor.CHAR_CLIENT_CONFIG);
descriptorVel.setValue(BleDefinedUUIDs.Descriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptorVel);
BluetoothGattCharacteristic characteristicAcc = gatt.getService(BleDefinedUUIDs.Service.KOMMMODUL_SERVICE).getCharacteristic(BleDefinedUUIDs.Characteristic.ACCELERATION);
gatt.setCharacteristicNotification(characteristicAcc, true);
BluetoothGattDescriptor descriptorAcc = characteristicAcc.getDescriptor(
BleDefinedUUIDs.Descriptor.CHAR_CLIENT_CONFIG);
descriptorAcc.setValue(BleDefinedUUIDs.Descriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptorAcc);
無論我做什麼我只得到了速度數據。如果我改變兩個塊的順序,我只能獲得加速度,但不能獲得更多的速度數據。
我要做什麼才能同時訂閱許多特性?
在此先感謝
雷託
你能嘗試等待第一塊onDescriptorWrote回調嘗試,並設置在第二個之前? – Zomb
這是一個很好的提示,實際上它解決了我的問題。非常感謝! – retokiefer
我將添加它作爲答案,以便其他人可以找到它! – Zomb