我正在使用英特尔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>
编辑:我已经让它上班一次,但大约半小时后,它停止了工作。
答案 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
函数,并包含一个选项对象,指示您要查询加速度计的频率(以毫秒为单位)。