如何添加Senor
1. 获取系统提供的Sensor服务,一般放在onCreate()函数中
sm = (SensorManager)getSystemService(SENSOR_SERVICE);
2.为Sensor添加监听器,一般放在onCreate()函数中
localSensorListener = new LocalSensorListener();
3. 注册sensor,一般放在oonResume()函数中
sm.registerListener(localSensorListener,
SensorManager.SENSOR_ACCELEROMETER,
SensorManager.SENSOR_DELAY_NORMAL);
4.用完注销sensor,一般放在onPause()函数中
sm.unregisterListener(localSensorListener);
5.实现sensor的主体,override函数onSensorChanged()和onAccuracyChanged()
为了理解Sensor的数值,贴上一段IBM Developer上关于Sensor的实例程序,以后有修改也可以及时补充
贴上一段自己写的游戏Demo的程序
onSensorChanged()中取得参照手机坐标系的加速度值float[] values中取得x,y,z三个方向的加速度值,
设备的坐标系如图所示(注:此图来自于Android sdk doc)
x > 0 表示手机向右转, x<0 表示手机向左转
y > 0 表示手机向上转, y<0 表示手机向下转
并且sensor可以根据需要改变其灵敏度
SENSOR_DELAY_FASTEST 最灵敏
SENSOR_DELAY_GAME 游戏的时候用这个
SENSOR_DELAY_NORMAL 比较慢。
SENSOR_DELAY_UI 最慢的,几乎就是横和纵的区别