Android加速度传感器
Android加速度传感器
加速度传感器原理:加速度传感器数值可通过onSensorChanged(SensorEvent event)中event.values获得。返回的是float数组单位m/s^2。
加速度传感器的X轴沿着手机屏幕向右(手机左边在下,数值为正)。上面数组的第一个为传感器X轴的加速度值。
加速度传感器的Y轴沿着手机屏幕向上(手机下边在下,数值为正)。。上面数组的第二个为传感器Y轴的加速度值。
加速度传感器的Z轴垂直于手机屏幕向上(手机屏幕朝上,数值为正)。。上面数组的第三个为传感器Z轴的加速度值。
编程操作:1、通过(SensorManager)getSystemService(Context.SENSOR_SERVICE);返回传感器管理器sensormanager。
2、通过sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)返回加速度传感器对象。
3、在onResume()中注册加速度传感器监听器 sensormanager.registerListener(this,
sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME) 。
其中SensorManager.SENSOR_DELAY_GAME为传感器数据的频率SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME、SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI依次频率减小,但资源消耗的更少。
4、在onStop()中取消注册sensormanager.unregisterListener(this)
5、通过onSensorChanged(SensorEvent event) 中event.values获得各个方向上加速度的值并做处理。
6、onAccuracyChanged(Sensor sensor, int accuracy)为传感器的精度发生改变时触发的事件。accuracy为 sensor改变后的精度。
参考代码:
- public class SenorActivity extends Activity implements SensorEventListener {
- SensorManager sensormanager;
- EditText editText;
- @Override
评论暂时关闭