ActionScript Air Android项目计步器如果显示为锁定,则停止



i用Pedometer构建了Android app,如果应用程序正在运行,则Pedometer可以正常工作。但是,如果我锁定屏幕按钮,计步器停止计数,则如果我解锁屏幕,计步器再次工作正常,即使屏幕锁定,我如何使Pedometer运行。

到目前为止,这是该功能的主要部分:

import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;
import de.helper.GeneralHelper;

init();
function init () {
        step_el.btn_step_start.addEventListener(MouseEvent.CLICK, function () {
        if (Accelerometer.isSupported) {
            trace("SUPPORTED");
            if (myAcc == null) {
                myAcc = new Accelerometer();
                myAcc.setRequestedUpdateInterval(10);
            }
            if (!stepCounterStarted) {
                myAcc.addEventListener(AccelerometerEvent.UPDATE, onAccUpdate3);
                steps = 0;
                step_el.step_number.text = steps.toString();
                step_el.btn_step_start.title.text = "STOP";
                stepCounterStarted = true;
            } else {
                myAcc.removeEventListener(AccelerometerEvent.UPDATE, onAccUpdate3);
                step_el.btn_step_start.title.text = "START";
                stepCounterStarted = false;
                steps = 0;
                step_el.step_number.text = steps.toString();
            }
        } else {
            trace("NOT SUPPORTED");
        }
    })
}
function onAccUpdate3(evt: AccelerometerEvent): void {
    var xx = evt.accelerationX;
    var yy = evt.accelerationY;
    var zz = evt.accelerationZ;
    var dot = (px * xx) + (py * yy) + (pz * zz);
    var a = Math.abs(Math.sqrt(px * px + py * py + pz * pz));
    var b = Math.abs(Math.sqrt(xx * xx + yy * yy + zz * zz));
    dot /= (a * b);
    if (dot <= 0.82) {
        if (!isSleeping) {
            isSleeping = true;
            var timerSleep: Timer = new Timer(300, 1);
            timerSleep.addEventListener(TimerEvent.TIMER, wakeUp);
            timerSleep.start();
            steps ++;
            saveStep();
            if (step_el.step_number != null) step_el.step_number.text = steps;
        }
    }
    px = xx;
    py = yy;
    pz = zz;
}

根据文档,当对另一个应用程序失去聚焦时,空气将您的应用程序插入到4fps。

加速度计asdocs不提到焦点。

很可能需要编写一个本机扩展名才能获得对加速度计的低级访问。

最新更新