You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter应用中通过flutter_blue_plus获取Gtech Lite血糖仪的血糖数据

实现Flutter连接Gtech Lite血糖仪获取血糖数据的方法

1. 核心问题说明

Gtech Lite遵循蓝牙医疗设备规范,其血糖测量数据对应的特征是Notify属性,而非你之前查找的Read属性,这是你没找到目标数据项的关键原因。

2. 明确设备BLE服务与特征UUID

蓝牙血糖服务的标准UUID是固定的:

  • 血糖服务UUID:00001808-0000-1000-8000-00805f9b34fb
  • 血糖测量特征UUID:00002a18-0000-1000-8000-00805f9b34fb

3. 完整实现流程(基于flutter_blue_plus)

步骤1:扫描并连接设备

// 启动扫描,超时4秒
FlutterBluePlus.startScan(timeout: const Duration(seconds: 4));

// 监听扫描结果,匹配目标设备
FlutterBluePlus.scanResults.listen((results) {
  for (final result in results) {
    // 根据设备名称匹配,可根据实际设备名称调整
    if (result.device.name.contains("Gtech Lite")) {
      FlutterBluePlus.stopScan();
      // 发起设备连接
      result.device.connect();
      break;
    }
  }
});

步骤2:发现服务并监听特征数据

连接成功后,遍历服务找到血糖服务,再启用Notify监听测量数据:

// 监听设备连接状态
device.connectionState.listen((state) {
  if (state == BluetoothConnectionState.connected) {
    // 发现设备所有服务
    device.discoverServices().then((services) {
      for (final service in services) {
        // 匹配血糖服务UUID
        if (service.uuid.toString() == "00001808-0000-1000-8000-00805f9b34fb") {
          for (final characteristic in service.characteristics) {
            // 匹配血糖测量特征UUID
            if (characteristic.uuid.toString() == "00002a18-0000-1000-8000-00805f9b34fb") {
              // 启用Notify模式
              characteristic.setNotifyValue(true);
              // 监听数据变化
              characteristic.value.listen((bytes) {
                // 解析字节数据为血糖值
                final glucoseValue = parseGlucoseData(bytes);
                // 此处可更新UI显示血糖值
                print("当前血糖值:${glucoseValue} mmol/L");
              });
            }
          }
        }
      }
    });
  }
});

步骤3:解析原始字节数据

蓝牙血糖特征的字节遵循规范,解析逻辑如下:

double parseGlucoseData(List<int> bytes) {
  // 规范定义:第2-3位字节为血糖值(小端模式,单位mg/dL)
  final glucoseMgDl = (bytes[3] << 8) | bytes[2];
  // 转换为常用的mmol/L单位(可选,根据需求调整)
  return double.parse((glucoseMgDl / 18.0).toStringAsFixed(2));
}

4. 关键注意事项

  • 设备状态:Gtech Lite需处于可连接状态(如刚完成测量或进入配对模式)才能被扫描到
  • 权限配置:Android需申请BLUETOOTH_SCAN、BLUETOOTH_CONNECT权限;iOS需在Info.plist中添加NSBluetoothAlwaysUsageDescription权限
  • 异常处理:添加连接失败、服务发现失败的捕获逻辑,避免程序崩溃
  • 精准匹配:若设备名称不固定,可直接通过UUID匹配服务与特征,无需依赖设备名称

内容的提问来源于stack exchange,提问作者Aldama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:42:43