如何在 tizen web 应用程序中没有任何事件的情况下获得总累积步数?

How to get total accumulative step count without any event in tizen webapp?

输出应用程序适用于三星手表齿轮 s3。我已经尝试过以下代码:

function onchangedCB(pedometerInfo) {    
    console.log('accumulativeTotalStepCount: ' + pedometerInfo.accumulativeTotalStepCount);
    tizen.humanactivitymonitor.unsetAccumulativePedometerListener();
}

tizen.humanactivitymonitor.setAccumulativePedometerListener(onchangedCB);

在这个数据中,无论我得到什么都是正确的,但是,在这个代码中,onchangedCB 函数只会在 activity 发生变化时被调用(比如步行,运行)并且我想要直到那个动作的总步数,我不想等到下一个 activity 发生。

我也试过:

tizen.humanactivitymonitor.start("PEDOMETER",
        function onSuccess(pedometerInfo) {
                  console.log(pedometerInfo.cumulativeTotalStepCount)
        }
);
function onsuccessCB(pedometerInfo) {
     console.log("Accumulative total step count : " + pedometerInfo.accumulativeTotalStepCount);
}
function onerrorCB(error) {
     console.log("Error occurs. name:"+error.name + ", message: "+error.message);
}
tizen.humanactivitymonitor.getHumanActivityData("PEDOMETER", onsuccessCB, onerrorCB);

getHumanActivityData 正在立即返回数据,但无法获取 accumulativeTotalStepCount。

很遗憾,您无法使用 humanactivity web 实现您的目标 API。 因为它停留在 setAccumulativePedometerListener() API 中,引用用于注册侦听器以更改数据 ('when new data is available')。这清楚地表明这不是您的用例。

getHumanActivityData() 函数旨在返回自最近一次为此传感器调用 start() 以来的数据,这也不符合您对总步数(累计)的预期。

我只能建议您一些解决方法,即在您的应用程序中可用时获取 accumulativeTotalStepCount 并在关闭您的应用程序时将其缓存。然后,在您的应用程序收集更新数据之前,结果将大致准确。并在第一次听众调用后更新。

编辑: 无法从 Web API 获得必要的数据,但可以使用 native API. You can also refer to hybrid application concept which uses Web application and native service which communicate with app and provides data

提供