摇一摇功能实现

摇一摇功能只使用到Sensor.TYPE_ACCELEROMETER加速度传感器

a.首先acticity要实现SensorEventListener接口

初始化传感器服务 mSensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);

b.然后重写onSensorChanged方法根据时间类型和偏移值判断即可 

事件类型:event.sensor.getType() 偏移值 event.values

加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是
  values[0]: x-axis 方向加速度
  values[1]: y-axis 方向加速度
  values[2]: z-axis 方向加速度
  其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点
  x 方向就是手机的水平方向,右为正
  y 方向就是手机的水平垂直方向,前为正
  z方向就是手机的空间垂直方向,天空的方向为正,地心的方向为负

b.最后要注意在onStop() onPause()里注销传感器的服务 mSensorMgr.unregisterListener(this);

onResume()里重载服务 ://加速度传感器

  mSensorMgr.registerListener(this,

   mSensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),

   //还有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等,

   //根据不同应用,需要的反应速率不同,具体根据实际情况设定

   SensorManager.SENSOR_DELAY_NORMAL);

posted @ 2012-08-01 15:59  淽沐  阅读(391)  评论(0编辑  收藏  举报