===== Accelerometer ===== ==== 설명 ==== * 디바이스의 움직임에 대하여 X, Y, Z축의 방향을 감지한다. ==== 제약사항 ==== * Accelerometer API의 플랫폼별 제약사항은 다음과 같다. === Android === N/A === iOS === == accelerometer.getCurrentAcceleration == * iPhone은 어떤 주어진 점에서 가속 센서가 감지한 좌표 값을 주지 않는다. * 특정 시간 간격으로 가속 센서를 감지해야 한다. * getCurrentAcceleration() 은 watchAcceletometer() 을 통해 마지막으로 감지된 좌표 값을 나타낸다. == accelerometer.watchAcceleration == * iPhone에서는 가속 센서 감지 간격이 40 milliseconds 에서 1000 milliseconds 에서만 유효하게 적용된다. * 만약 3초 간격으로 watchAcceleration()을 요청하게 되면, phoneGap을 통해 1초 간격으로 가속 센서의 좌표 값을 받아오지만, phoneGap은 3초 단위로 callback 함수를 요청하도록 자체 보정한다. === DEPRECATED === * W3C 표준으로 편입 ( https://www.w3.org/TR/orientation-event/ ) ==== 환경 설정 ==== === Android === * app/res/xml/config.xml === iOS === * App/Supporting Files/config.xml ==== 관련 함수 ==== === accelerometer.getCurrentAcceleration === * 현재 가속 센서가 감지한 좌표 값 (x, y, z) 을 구한다. navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError); * Quick Example 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); === accelerometer.watchAcceleration === * 특정 시간 간격으로 가속 센서가 감지한 좌표 값 (x, y, z) 을 받아온다. * acceleratorOptions Object 내의 frequency 파라미터로 정한 특정 시간 간격으로 accelerometerSuccess을 호출한다. * 함수 실행을 통해 얻은 watch ID를 가지고 accelerometer.clearWatch 함수로 가속 센서 감지를 중단할 수 있다. var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess, accelerometerError, [accelerometerOptions]); * Quick Example 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); === accelerometer.clearWatch === * accelerometer.watchAcceleration을 통해 작동 중인 가속 센서(watchID) 감지를 종료한다. navigator.accelerometer.clearWatch(watchID); * Quick Example var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); ... navigator.accelerometer.clearWatch(watchID); ==== 파라미터 ==== === accelerometerSuccess === * 가속 센서의 method 가 성공했을 때 실행하는 함수. * 가속 센서의 정보를 가지는 Acceleration 객체를 매개변수로 가진다. function onSuccess(acceleration) { alert('Acceleration X: ' + acceleration.x + '\n' + 'Acceleration Y: ' + acceleration.y + '\n' + 'Acceleration Z: ' + acceleration.z + '\n' + 'Timestamp: ' + acceleration.timestamp + '\n'); }; === accelerometerError === * 가속 센서의 method 가 실패했을 때 실행하는 함수. function() { // Handle the error } === accelerometerOptions === * 감지할 가속 센서의 옵션을 설정한다. ^유형^설명^타입^비고^ |frequency|특정 시간 간격으로 가속 센서를 감지한다.|Number|기본값 : 10000| ==== Objects ==== === Acceleration === * 가속 센서가 감지한 가속도 정보를 가지는 객체. 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| ==== 참고 자료 ==== * Cordova : https://cordova.apache.org/docs/en/7.x/reference/cordova-plugin-device-motion/index.html