Android 陀螺仪传感器(Gyroscope sensor)
陀螺仪又叫角速度传感器,一般用来检测手机姿态的,体感游戏用得最多,也有在手机拍照防抖,GPS 惯性导航,为 APP 添加一些动作感应(比如轻轻晃动手机关闭来电铃声) 等应用中出现过
其实陀螺仪就一个作用,计算手机已经转动的角度,并以此延伸出其它应用
陀螺仪传感器的 单位 是 角速度(弧度/秒)radians/second
陀螺仪传感器的类型是 Sensor.TYPE_GYROSCOPE
手机中的陀螺仪传感器一般都是三轴的,三个值依次是沿着 X 轴,Y 轴,Z 轴旋转的角速度,手机逆时针旋转,角速度值为正,顺时针则为负值
范例我们就不写了,因为用法都一样,代码都几乎一样
private static final float NS2S = 1.0f / 1000000000.0f; private float timestamp; public void onSensorChanged(SensorEvent event) { if (timestamp != 0) { // event.timesamp 表示当前的时间,单位是纳秒(1百万分之一毫秒) final float dT = (event.timestamp - timestamp) * NS2S; angle[0] += event.values[0] * dT; angle[1] += event.values[1] * dT; angle[2] += event.values[2] * dT; } timestamp = event.timestamp; }
上面的通过陀螺仪传感器相邻两次获得数据的时间差 ( dT ) 来分别计算在这段时间内手机延 X、 Y、Z 轴旋转的角度,并将值分别累加到 angle 数组的不同元素上