作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用 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_BPM
和 HEART_RATE_SUMMARY
,但不提供 PPG 原始数据。
最佳答案
我花了一些时间弄清楚从 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 传感器的传感器类型。在您的输出中,您会发现其中一个传感器的类型中包含单词 ppg。例如,这是我的华为 watch 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
}
}
一切就绪。希望它对你有用。
关于安卓磨损 : How to get raw PPG data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47444302/
我是一名优秀的程序员,十分优秀!