加速度センサー

加速度センサー

加速度センサーは、iOSとAndroidではブラウザー提供のJavascriptのAPIの値が変わる

ちなみに jQueryMobileでは、加速度センサーは非対応

加速度センサーの値は、
devicemotion
というブラウザーのイベントから取得する

var onDeviceMotion = function(e){
accel = e.accelerationIncludingGravity;
var accelX = accel.x;
var accelY = accel.y;
var accelZ = accel.z;
};

window.addEventListener('devicemotion',onDeviceMotion,true);

addEventListener()でイベントをハンドリングするonDeviceMotion関数を
devicemotionイベントにバインドする

onDeviceMotionでは、
受け取ったイベントeから
加速度メーターの値になる
accelerationIncludingGravity
を取得している

accelerationIncludingGravityには
x
y
z
という変数名で、各軸方向の加速度が格納されている

注意点として、devicemotionイベントは、
非常に短い間隔で発生しているため
実質的には常に最新の加速度が取得できるけど
イベントの発生頻度が高いため
イベントハンドラの中で重い処理は避けた方がよい

あと、AndroidとiOSでは加速度センサーの正負の値が逆になる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です