iPhone은 어떤 주어진 점에서 가속 센서가 감지한 좌표 값을 주지 않는다.
특정 시간 간격으로 가속 센서를 감지해야 한다.
getCurrentAcceleration() 은 watchAcceletometer() 을 통해 마지막으로 감지된 좌표 값을 나타낸다.
iPhone에서는 가속 센서 감지 간격이 40 milliseconds 에서 1000 milliseconds 에서만 유효하게 적용된다.
만약 3초 간격으로 watchAcceleration()을 요청하게 되면, phoneGap을 통해 1초 간격으로 가속 센서의 좌표 값을 받아오지만, phoneGap은 3초 단위로 callback 함수를 요청하도록 자체 보정한다.
<plugin name="Accelerometer" value="org.apache.cordova.AccelListener" />
<key>Plugins</key>
<dict>
<key>Accelerometer</key>
<string>CDVAccelerometer</string>
</dict>
navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function onError() {
alert('onError!');
};
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
특정 시간 간격으로 가속 센서가 감지한 좌표 값 (x, y, z) 을 받아온다.
acceleratorOptions Object 내의 frequency 파라미터로 정한 특정 시간 간격으로 accelerometerSuccess을 호출한다.
함수 실행을 통해 얻은 watch ID를 가지고 accelerometer.clearWatch 함수로 가속 센서 감지를 중단할 수 있다.
var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,
accelerometerError,
[accelerometerOptions]);
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function onError() {
alert('onError!');
};
var options = { frequency: 3000 }; // Update every 3 seconds
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
navigator.accelerometer.clearWatch(watchID);
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
...
navigator.accelerometer.clearWatch(watchID);
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function() {
// Handle the error
}
유형 | 설명 | 타입 | 비고 |
frequency | 특정 시간 간격으로 가속 센서를 감지한다. | Number | 기본값 : 10000 |
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function onError() {
alert('onError!');
};
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
유형 | 설명 | 타입 | 비고 |
X | x 축 가속 값을 기록. | Number | 값 : 0 ~ 1 |
Y | y 축 가속 값을 기록. | Number | 값 : 0 ~ 1 |
Z | z 축 가속 값을 기록. | Number | 값 : 0 ~ 1 |
timestamp | 측정한 milliseconds 단위의 시간. | DOMTimeStamp | milliseconds |
이 위키의 내용은 다음의 라이센스에 따릅니다 :
CC Attribution-Noncommercial-Share Alike 3.0 Unported전자정부 표준프레임워크 라이센스(
바로가기)
전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.