是否可以通过Android从智能手表获取PPG(光电容积描记图像)数据?

问题描述 投票:6回答:3

我想使用具有光学心率传感器的Android智能手表设备开发医疗保健应用程序。这类设备的例子有:三星gear live,Moto360,LG G手表R等。

为此,我需要来自这些设备的原始PPG信号数据,但我发现Android API仅支持BPM单元的心率数据。

有谁知道原始信号数据是否可访问,如果可以,我如何访问该数据?

android wear-os sony-smartwatch
3个回答
1
投票

是的,它是可能的(至少在三星移动设备上,如S5,S6等)。

看到这个链接:http://developer.samsung.com/galaxy#sensor-extension

来自三星网站:

HRM传感器位于手机的后面板上。如果放置手指,测量开始。光电容积描记图(PPG)信号表示从手指中的血管反射的IR / RED光的量。

使用三星的SDK,它会给你原始值(如果我没记错的话,值范围从0到~66400)。


0
投票

是的,有可能这样做。我在这里回答了类似的问题:Android Wear: How to get raw PPG data?

基本上,请尝试按照以下步骤操作:

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);

-1
投票

不,我已严格搜索提取原始值但未成功。 AsteroidOS(asteroidos.org/)是一款适用于少数兼容手表的定制ROM,即使经过整个源代码,我也只能找到一个使用心率监测器的地方。

实施档案

https://github.com/AsteroidOS/android_frameworks_native/blob/e88bdd18c91c313b2102445eb5eb6213814bc124/libs/gui/Sensor.cpp

我觉得为什么它不起作用的原因是因为心率是由硬件内部计算的。

出于实验目的,您可以在外部构建自己的PPG传感器

呜呜呜.spark fun.com/products/11574

并将其连接到arduino。

或者可以搜索一些无线PPG传感器并构建自己的PPG传感器。

© www.soinside.com 2019 - 2024. All rights reserved.