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

如何为三星Galaxy Watch 4开发Android应用调用spo2传感器显示血氧数据

三星Galaxy Watch 4 血氧(SPO2)传感器调用方案

原生Android官方传感器框架未定义公开的通用SPO2传感器类型,三星穿戴设备的健康类传感器数据不对外开放原生AOSP接口,需通过三星专属健康SDK实现调用,具体实现步骤如下:

  • 环境配置
    首先在三星开发者后台注册你的应用包名,申请SPO2数据读取权限,同时确保目标手表已安装三星健康平台配套服务,未安装时调用SDK接口会自动弹出安装提示。
  • 权限申请
    需先后申请两层权限:
    1. 首先申请Android系统运行时权限 android.permission.BODY_SENSORS, targetSDK≥33的应用还需额外申请android.permission.ACTIVITY_RECOGNITION权限
    2. 调用三星健康SDK的专属权限申请接口,弹出三星健康授权弹窗,用户同意后才可读取血氧数据
  • 血氧数据读取与显示
    核心逻辑伪代码参考如下:
    // 初始化健康数据解析实例
    val healthResolver = HealthDataResolver(context, registeredAccount)
    // 构造SPO2数据查询请求,可指定时间范围获取历史数据,也可触发单次实时测量
    val spo2QueryRequest = ReadRequest.Builder()
        .setDataType(HealthConstants.Spo2.HEALTH_DATA_TYPE)
        .setTimeRange(System.currentTimeMillis() - 3600000, System.currentTimeMillis())
        .build()
    // 异步查询获取结果
    healthResolver.read(spo2QueryRequest).addOnSuccessListener { queryResult ->
        val allSpo2Records = queryResult.getData(HealthConstants.Spo2.HEALTH_DATA_TYPE)
        // 提取最新血氧值更新UI
        allSpo2Records.maxByOrNull { it.timestamp }?.let { latestRecord ->
            val spo2Value = latestRecord.getValue(HealthConstants.Spo2.SPO2)
            // Wear OS界面更新必须切到主线程执行
            runOnUiThread {
                spo2DisplayText.text = "当前血氧:$spo2Value%"
            }
        }
    }.addOnFailureListener {
        // 异常处理:可提示用户检查权限、或是否完成三星健康的血氧传感器首次校准
    }
    
  • 注意事项
    • 三星Galaxy Watch 4搭载Wear OS 3及以上系统,你的应用targetSDK版本需≥31才能兼容
    • 血氧数据默认不会持续实时返回,若需要实时监测建议设置10-15分钟的查询间隔,避免因高频后台调用被系统功耗管控拦截
    • 若查询返回空数据,优先检查用户是否在三星健康内完成过血氧测量校准,以及是否授予了应用血氧数据读取权限

内容的提问来源于stack exchange,提问作者Fodor Balázs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:09:00