From a094d511a82eb9443a139b62ccb2a22d826c19a2 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Tue, 16 Sep 2025 10:45:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(ble):=20=E4=BF=AE=E6=AD=A3=E7=94=B5?= =?UTF-8?q?=E6=B1=A0=E7=94=B5=E9=87=8F=E7=89=B9=E6=AE=8A=E5=80=BC127?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将蓝牙设备返回的特殊值127转换为-1表示无效电量,同时保持大于100的值重置为0的逻辑 --- lib/data/services/ble_manager.dart | 28 ++++++++++++++++----------- lib/modules/home/views/home_view.dart | 2 +- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/lib/data/services/ble_manager.dart b/lib/data/services/ble_manager.dart index e208e74bc..86d1572ef 100644 --- a/lib/data/services/ble_manager.dart +++ b/lib/data/services/ble_manager.dart @@ -367,17 +367,23 @@ class BleManager extends GetxService { 'lxm-- batteryLevel原始值: ${data['batteryLevel']} (类型: ${data['batteryLevel']?.runtimeType})'); // 提取电池信息 - final int leftBattery = (data['leftEarBattery'] as int? ?? 0) > 100 - ? 0 - : (data['leftEarBattery'] as int? ?? 0); - - final int rightBattery = (data['rightEarBattery'] as int? ?? 0) > 100 - ? 0 - : (data['rightEarBattery'] as int? ?? 0); - - final int caseBattery = (data['caseBattery'] as int? ?? 0) > 100 - ? 0 - : (data['caseBattery'] as int? ?? 0); + final int leftBattery = (data['leftEarBattery'] as int? ?? 0) == 127 + ? -1 // 特殊值127转换为-1 + : (data['leftEarBattery'] as int? ?? 0) > 100 + ? 0 // 大于100的值重置为0 + : (data['leftEarBattery'] as int? ?? 0); // 正常值 + + final int rightBattery = (data['rightEarBattery'] as int? ?? 0) == 127 + ? -1 // 特殊值127转换为-1 + : (data['rightEarBattery'] as int? ?? 0) > 100 + ? 0 // 大于100的值重置为0 + : (data['rightEarBattery'] as int? ?? 0); // 正常值 + + final int caseBattery = (data['caseBattery'] as int? ?? 0) == 127 + ? -1 // 特殊值127转换为-1 + : (data['caseBattery'] as int? ?? 0) > 100 + ? 0 // 大于100的值重置为0 + : (data['caseBattery'] as int? ?? 0); // 正常值 final bool leftCharging = data['leftEarCharging'] as bool? ?? false; final bool rightCharging = data['rightEarCharging'] as bool? ?? false; final bool caseCharging = data['caseCharging'] as bool? ?? false; diff --git a/lib/modules/home/views/home_view.dart b/lib/modules/home/views/home_view.dart index 34156f114..4541a14d3 100644 --- a/lib/modules/home/views/home_view.dart +++ b/lib/modules/home/views/home_view.dart @@ -567,7 +567,7 @@ class HomeView extends GetView { batteryColor = Colors.red[600]!; } - bool isBatteryZero = batteryLevel == 0; + bool isBatteryZero = batteryLevel == -1; return Expanded( child: Padding(