Как я могу получить ежедневный счетчик шагов в веб-интерфейсе Gear Fit Fit 2 Pro? - PullRequest
0 голосов
/ 27 июня 2018

Я создаю html / js приведенный в движение циферблат для gear fit 2 pro, и у меня возникают проблемы при выполнении того, что кажется простой задачей: подсчитать количество ежедневных шагов.

Я пролил документацию, но в ней описывается только то, как считать либо шаги с момента запуска watchface, либо шаги с момента загрузки устройства. Другие циферблаты сразу обнаруживают подсчет шагов в масштабе всей системы и отображают его, но я не понимаю, как это возможно!

У кого-нибудь есть пример, как это сделать? Я подозреваю, что могут быть задействованы функции stepdifference или readrecorderdata, но первое невозможно использовать из-за неадекватной документации, а второе, по-видимому, фактически не присутствует в устройстве.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете установитьAccumulativePedometerListener () для требуемых данных датчика периода времени. В вашем случае вы можете перезагрузить слушателя в конце дня. Я написал псевдо-код для вас, чтобы показать ежедневный счетчик шагов.

var sensor_data = document.getElementById("sensor-data");
var step_count=0,
    offset=0,   // to reduce yesterday's data
    currentDailyStep=0;

function updateTime() {
    var datetime = tizen.time.getCurrentDateTime(),
        hour = datetime.getHours(),
        minute = datetime.getMinutes(),
        second = datetime.getSeconds();

    if(hour === 23 && minute === 59 && second === 59){  // at the end of the day
            tizen.humanactivitymonitor.unsetAccumulativePedometerListener();
            tizen.humanactivitymonitor.stop("PEDOMETER");               
            offset = step_count;    // store today's count

            pedometer_init();   //reset
        }

    /*
     * Other Codes
     * ............
     * .........
     */
}

function onchangedCB(pedometerInfo) {
    step_count = pedometerInfo.accumulativeTotalStepCount;
    currentDailyStep = step_count - offset; // totl count - total count till yesterday
    sensor_data.innerHTML = currentDailyStep;

}

function pedometer_init(){
    tizen.humanactivitymonitor.start("PEDOMETER");
    tizen.humanactivitymonitor.setAccumulativePedometerListener(onchangedCB);
}

function init(){
    pedometer_init();
}

window.onload = init();

Вам необходимо уменьшить смещение вручную, так как функция stop () не сбрасывает счет. Сохраните данные о ежедневных шагах, если вам интересно показать статистику.

Кроме того, в Tizen Developers Ссылки на API есть пример кода, использующий HumanActivityRecorder для записи количества шагов в день. Проверьте, помогает ли это:

function onerror(error){
   console.log(error.name + ": " + error.message);
}

function onread(data){
   for (var idx = 0; idx < data.length; ++idx)
   {
      console.log("*** " + idx);
      console.log('totalStepCount: ' + data[idx].totalStepCount);
   }
}

var type = 'PEDOMETER';
var now = new Date();
var startTime = now.setDate(now.getDate() - 7);
var anchorTime = (new Date(2000, 1, 2, 6)).getTime();
var query ={
   startTime: startTime / 1000,
   anchorTime: anchorTime / 1000,
   interval: 1440 /* 1 day */
};

try{
   tizen.humanactivitymonitor.readRecorderData(type, query, onread, onerror);
}
catch (err){
   console.log(err.name + ': ' + err.message);
}
...