我已连接血压设备并在onServiceDicovered中设置通知。
我设置了每个特征的通知。 但onCharacteristicChanged仍然没有被调用。
public final static UUID CLIENT_UUID = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
gatt.setCharacteristicNotification(characteristic, enabled);
for (BluetoothGattDescriptor dp : characteristic.getDescriptors()) {
dp = characteristic.getDescriptor(CLIENT_UUID);
if (dp != null) {
if ((characteristic.getProperties() & BluetoothGattCharacteristic.PROPERTY_NOTIFY) != 0) {
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
} else if ((characteristic.getProperties() & BluetoothGattCharacteristic.PROPERTY_INDICATE) != 0) {
descriptor.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE);
}
gatt.writeDescriptor(dp);
}
}
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
super.onCharacteristicChanged(gatt, characteristic);
我想接受血压,但是特征变化从未打过电话。 但我可以用ios或其他示例代码接收。
谢谢!
答案 0 :(得分:0)
首先,public static List<Integer> intGenerate(List<Integer> INLIST) {
Random Rand = new Random();
int RANDOMNUM = Rand.nextInt((9999999 - 1000000) + 1) + 1000000;
if(INLIST.isEmpty()) {
INLIST.add(randomNum);
}else {
while(INLIST.contains(randomNum)==true) {
RANDOMNUM = Rand.nextInt((9999999 - 1000000) + 1) + 1000000;
}
INLIST.add(RANDOMNUM);
}
return INLIST;
的属性为Blood Pressure Measurement
,而不是Indicate
iOS Notify
会自动设置CBPeripheral setNotifyValue
或Indicate
,但Android无法实现。
给你一些参考代码
Notify