【问题标题】:Android Wear: How to get raw PPG data?Android Wear:如何获取原始 PPG 数据?
【发布时间】:2017-11-22 21:42:58
【问题描述】:

我可以使用 SensorEventListener 使用光学心率传感器访问用户的心率:

sensorManager.registerListener(this,
                sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE),
                SensorManager.SENSOR_DELAY_NORMAL);

我需要的是获取原始 PPG 数据,例如: https://ars.els-cdn.com/content/image/1-s2.0-S0960077915001344-gr1.jpg

我可以通过 Google Fit 或任何其他方式获取这些数据吗?

我查看了 Google Fit API 的使用情况: https://developers.google.com/fit/android/sensors

它提供 TYPE_HEART_RATE_BPMHEART_RATE_SUMMARY ,但不提供 PPG 原始数据。

【问题讨论】:

标签: android wear-os heartbeat


【解决方案1】:

我花了一些时间弄清楚从 android API 获取原始 PPG 信号是否可行,与某些人可能会说的相反,这绝对是可能的。下面是如何做到这一点:

1- 获取 PPG 传感器的传感器类型(由数字表示)(它是描述传感器的常数)。这可以通过列出设备上所有可用的传感器来完成:

List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
        for (Sensor currentSensor : sensorList) {
            Log.d("List sensors", "Name: "+currentSensor.getName() + " /Type_String: " +currentSensor.getStringType()+ " /Type_number: "+currentSensor.getType());
        }

2- 然后,尝试查找 PPG 传感器的 sensorType。在您的输出中,您会发现其中一个传感器在其类型中包含单词 ppg。例如,这是我的华为手表 2 的 ppg 传感器的样子:

Name: AFE4405 light Sensor /Type_String:  com.huawei.watch.ppg /Type_Number: 65537

3-使用您的 ppg 传感器的 type_number 注册您的听众,我的是 65537,所以我会这样做:

sensorManager.registerListener(this,sensorManager.getDefaultSensor(65537),SensorManager.SENSOR_DELAY_NORMAL);

4-聆听传感器数据的变化:

public void onSensorChanged(SensorEvent event) {

       if (event.sensor.getType() == 65537) {
            String msg = "PPG " + (int) event.values[0];
            //Do something with your PPG signal

        } 

}

你们都准备好了。希望它对你有用。

【讨论】:

  • 我把它做成了一个插件:pub.dev/packages/ppg 另外,我使用的设备(Fossil Sport 和 Fossil Gen 5)上实际上有 2 个通道,而您的代码只抓取第一个通道(event.values [0])
  • 一旦我开始收听 PPG 传感器,即使在应用程序关闭后它也不会关闭并且会耗尽电池电量。你有这个问题吗?
  • 如果您想在应用程序后台运行时停止监听 PPG 事件,您可以在 onPause 方法中取消注册监听器,然后在应用程序的 onResume 方法中重新注册。
  • 我知道距离上次发表评论已经有一段时间了,但是你们中有人在 iOS 中做过原型吗?我正在尝试实现相同的目标,但 Swift Sensors SDK 仍处于试验阶段,我正在尝试仅使用原始蓝牙标准来做到这一点感谢您的指导,已经帮了我很多!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
相关资源
最近更新 更多