如何在Tizen原生应用中读取可穿戴设备(Galaxy Active 2)的当前传感器值

问题描述 投票:0回答:1

我使用本机应用Tizen Studio为Samsung Galaxy Active 2构建了一个简单的表盘。我已经在脸上添加了一些“健康”信息:计步器和心率监测器。

问:我知道如何设置侦听器和回调,以便在心率(或步数)更改时得到通知,但是我找不到如何仅读取当前/最后读取的HRM值。我知道这是有可能的,因为其他表盘都可以这样做……只是不知道如何。

侦听器/回调方法的代码:

    sensor_get_default_sensor(SENSOR_HRM, &sensor);
    ret = sensor_create_listener(sensor, &hrmSensorListener);
    if( ret != SENSOR_ERROR_NONE)
        dlog_print(DLOG_ERROR, LOG_TAG, "failed to get hrm sensor. err = %d", ret);

    ret = sensor_listener_set_event_cb(hrmSensorListener, 20000, hrm_sensor_callback, face);
    if( ret != SENSOR_ERROR_NONE)
        dlog_print(DLOG_ERROR, LOG_TAG, "failed to set hrm sensor listener. err = %d", ret);

    sensor_listener_set_option(hrmSensorListener, SENSOR_OPTION_DEFAULT);
    sensor_listener_start(hrmSensorListener);

这意味着当表盘开始时,会有一段时间未更新HRM或步数,这有点令人讨厌。

如何读取传感器的当前值?

tizen tizen-wearable-sdk
1个回答
0
投票

请尝试使用sensor_listener_read_data方法。根据documentation,此方法获取传感器数据。您可以关注Tizen网站上发布的tutorial

sensor_get_default_sensor(SENSOR_HRM, &sensor);
ret = sensor_create_listener(sensor, &hrmSensorListener);
if( ret != SENSOR_ERROR_NONE)
    dlog_print(DLOG_ERROR, LOG_TAG, "failed to get hrm sensor. err = %d", ret);

ret = sensor_listener_set_event_cb(hrmSensorListener, 20000, hrm_sensor_callback, face);
if( ret != SENSOR_ERROR_NONE)
    dlog_print(DLOG_ERROR, LOG_TAG, "failed to set hrm sensor listener. err = %d", ret);

sensor_listener_set_option(hrmSensorListener, SENSOR_OPTION_DEFAULT);
sensor_listener_start(hrmSensorListener);

sensor_event_s event;
sensor_listener_read_data(hrmSensorListener, &event);

我认为上面的代码应该可以帮助您

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