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

How to read current sensor values in Tizen native app for wearable (Galaxy Active 2)

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

问:我知道如何设置侦听器和回调,以便在心率(或步数)发生变化 时收到通知,但我找不到如何读取当前/上次读取的 HRM 值。我知道这一定是可能的,因为其他表盘也是这样做的……只是不知道怎么做。

listener/callback 方法的代码:

    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 或步数没有更新,这有点烦人。

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

请尝试使用sensor_listener_read_data方法。根据 Tizen 网站上发布的 documentation this method gets sensor data. You may follow 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);

我认为上面的代码应该能帮到你