加速度传感器又叫G-sensor,返回x、y、z三轴的加速度数值。
该数值包含地心引力的影响,单位是m/s^2。
将手机平放在桌面上,x轴默认为0,y轴默认0,z轴默认9.81(由于地球的固有重力)。
将手机朝下放在桌面上,z轴为-9.81。
将手机向左倾斜,x轴为正值。
将手机向右倾斜,x轴为负值。
将手机向上倾斜,y轴为负值。
将手机向下倾斜,y轴为正值。
Android 加速度传感器的类型是 Sensor.TYPE_ACCELEROMETER
通过 android.hardware.SensorEvent 返回加速度传感器值。
加速度传感器在手机中应用非常的广泛,在开发的过程当中也非常的简单,(获取到值是真的非常的简单,想要实现某种功能还是需要自己想想怎么加判断吧)
举个栗子:手机摇一摇的功能:
这个算是比较简单的判断了,获取到x,y,z的值之后,对这三个值进行判断,摇一摇手机的话这些值肯定会发生变化,我们定一个阈值,当它们的值超过某一个数字之后就进行了摇一摇,配合代码实现更容易理解
上面代码可以看到,通过x,y,z的值的变化来判断手机是否进行了摇一摇,这个判断是比较简单的,思路就是这么个思路,这种判断有缺点,上面判断的是xyz的值不管是哪一个超过了20就认定手机进行了摇一摇,但是忽略了一点,就是用户往一个方向甩动手机也能触发,最好的就是只判断zy,并且判断的xy必须同时超过20才能认定是摇一摇,以下是改过的代码
还有相对摇一摇来说复杂一点的功能--抬手亮屏,这个也是对xyz进行判断,这里就不放代码了,简单说一下思路,当我们拿起手机的时候,加速度传感器xyz的值肯定会发生变化,我们可以判断它的结束值,就是手机对着我们的脸的时候传感器的值是个什么样的状态(我低着头对着手机的时候是x:0,y:8,z:5),我们可以对这个值进行判断,在手机200ms内达到这个值就被认定抬手亮屏
下面是获取加速度传感器的值以及手机摇一摇的代码
更多手机传感器使用请看Android中的传感器(总)