2014-09-21 2 views
2

저는 Intel XDK의 프로젝트에서 intel.xdk.accelerometer.watchAccelerometer 속성을 사용하고 있습니다. 가속도계가 감시되었는지 테스트하기 위해 임시 변수를 설정했지만 설정 한 테스트를 기반으로 내 장치에서 실행되지 않습니다.XDK의 가속도계가 장치에서 읽히지 않습니다.

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); 

자바 스크립트로드 순서 :

<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> 

편집 : 나는 한 번 일을 입수했지만, 30 분 후에는 작동이 중지.

답변

1

this page에 따르면 intel.xdk.accelerometer는 Cordova의 가속도계를 위해 더 이상 사용되지 않습니다.

Cordova accelerometer API은 현재 가속도계 설정을 확인하거나 지정된 일정한 간격으로 호출되는 콜백을 설정하는 데 사용할 수 있습니다.

현재 가속도 값을 확인 :

onSuccess 가속도계 판독의 X, Y 및 Z 값을 갖는 파라미터 객체를 공급하고, 그 판독이 수행 될 때 타임 스탬프가 나타내는
navigator.accelerometer.getCurrentAcceleration(onSuccess, onFail); 

. 당신이 watchAcceleration을 참조하기 때문에

그러나, 당신은 아마 위의 유사한 onSuccess 기능을 가지며 옵션이있는 당신이 원하는 빈도 (밀리 초)을 나타내는 개체를 포함

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

를 사용하려면 가속도계를 쿼리하십시오.

this app을 사용하면 가속도계 코드 here을 사용하여 Cordova 가속도계 API의 작동 버전을 볼 수 있습니다.

+0

setInterval 루프에서 getCurrentAcceleration 함수를 구현할 수 있습니까? watchAcceleration 함수가 나를 위해 작동하지 않는 것 같습니다. – Firedrake969

+0

이론상으로, 그렇습니다. getCurrentAcceleration이 작동한다고 가정하지만, 코드바에 iOS 장치가 getCurrentAcceleration (정확하게 알려진 마지막 값 사용)과 제대로 작동하지 않는 문제가 있습니다. intel.xdk가 iOS에서 동일한 문제가 있는지 여부는 알 수 없습니다. 타임 스탬프가 새 값인지 확인할 수 있어야합니다. – OldGeeksGuide

+0

좋아, 에뮬레이터에서 작동하지만 장치에서는 여전히 작동하지 않습니다 (Cordova 가속도계 및 watchAcceleration 기능 사용) – Firedrake969