getBatteryLevel method
Implementation
Future<int> getBatteryLevel() async {
if (!isConnected || _connectedDevice == null) {
throw Exception('Device not connected');
}
try {
final services = await _connectedDevice!.discoverServices();
final batteryService = services.firstWhere(
(s) =>
s.uuid.str128.toLowerCase() ==
DeviceConstants.batteryServiceUuid.toLowerCase(),
orElse: () => throw Exception('Battery service not found'),
);
final batteryCharacteristic = batteryService.characteristics.firstWhere(
(c) =>
c.uuid.str128.toLowerCase() ==
DeviceConstants.batteryCharacteristicUuid.toLowerCase(),
orElse: () => throw Exception('Battery characteristic not found'),
);
final batteryValue = await batteryCharacteristic.read();
return batteryValue.isNotEmpty ? batteryValue[0] : -1;
} catch (e) {
return -1;
}
}