Я также пробовал использовать обратный вызов, но этот обратный вызов не был вызван или отключен от сервера Gatt. Я также читаю и записываю значение из этого кода. чтение и запись работают нормально, но сервер батареи либо отключен, либо служба батареи не найдена для этого uuid.
private final boolean getbattery() {
System.out.println("On Battery service!");
BluetoothManager bluetoothManager= (BluetoothManager)this.getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter=bluetoothManager.getAdapter();
BluetoothDevice device=mBluetoothAdapter.getRemoteDevice(mBluetoothDeviceAddress);
BluetoothGatt mBluetoothGatt=device.connectGatt(getApplicationContext(),false, mGattCallback, 1);
BluetoothGattService batteryService = mBluetoothGatt.getService(Battery_Service_UUID);
if (batteryService == null) {
System.out.println("Battery service not found for uuid :" + Battery_Service_UUID);
return false;
}
BluetoothGattCharacteristic batteryLevel = batteryService.getCharacteristic(Battery_Level_UUID);
if (batteryLevel == null) {
System.out.println("Battery level not found!");
return false;
}
mBluetoothGatt.readCharacteristic(batteryLevel);
System.out.println("batteryLevel = " + mBluetoothGatt.readCharacteristic(batteryLevel));
return true;
}