XDK上的加速度计未在设备上读取

时间:2014-09-21 13:22:26

标签: javascript intel-xdk

我正在使用英特尔XDK中的项目并使用intel.xdk.accelerometer.watchAccelerometer属性。我有一个临时变量设置来测试加速度计是否已经被观察,但根据我设置的测试,它没有在我的设备上触发。

init.js代码:

/* This code is used to run as soon as Intel activates */
var aX = 0;

//in case necessary
var aY;
var aZ;

var temp = false;

//this isn't firing based on the temp variable's operation on device!

function success(a) {
    aX = a.x;

    //if needed later
    aY = a.y;
    aZ = a.z;
    temp = true;
}

var fail = function() {};

var watchAccel = function() {
    var opt = {};

    //every X/1000 seconds
    opt.frequency = 5;
    opt.adjustForRotation = false;

    intel.xdk.accelerometer.watchAcceleration(success, opt);
};

function onDeviceReady() {
    //lock orientation
    intel.xdk.device.setRotateOrientation("portrait");
    intel.xdk.device.setAutoRotate(false);

    //hide splash screen
    intel.xdk.device.hideSplashScreen();

    watchAccel();
}

document.addEventListener("intel.xdk.device.ready", onDeviceReady, false);

JavaScript加载顺序:

<head>
<script src="intelxdk.js"></script>         <!-- phantom library, needed for XDK api calls -->
<script src="cordova.js"></script>          <!-- phantom library, needed for Cordova api calls -->
<script src="xhr.js"></script>              <!-- phantom library, needed for XDK CORS -->
<script src='js/jquery.min.js'></script>
<script src='js/init.js'></script>
</head>
<body>
<!-- stuff -->
<script src='js/app.js'></script>
</body>
编辑:我已经让它上班一次,但大约半小时后,它停止了工作。

1 个答案:

答案 0 :(得分:1)

根据this page,intel.xdk.accelerometer已被弃用,转而使用Cordova的加速度计。

Cordova accelerometer API可用于检查当前加速度计设置或设置以指定的定期间隔调用的回调。

检查当前的加速度计值:

navigator.accelerometer.getCurrentAcceleration(onSuccess, onFail);

其中onSuccess为参数对象提供加速度计读数的x,y和z值,以及指示读取时间的时间戳。

但是,由于您引用watchAcceleration,您可能想要使用

navigator.accelerometer.watchAcceleration(onSuccess, onFail, {frequency:250}) ;

具有与上述类似的onSuccess函数,并包含一个选项对象,指示您要查询加速度计的频率(以毫秒为单位)。

您可以尝试this app查看Cordova加速度计API的工作版本,加速度计代码为here