android摇一摇功能的实现

本文详细解析了摇一摇功能的核心原理,仅使用加速度传感器即可实现。通过实现SensorEventListener接口,理解传感器服务的注册与注销流程,以及如何根据事件类型和偏移值来判断手机摇动动作。本文深入浅出地介绍了加速度传感器的工作原理,包括其单位、方向定义以及在不同应用中的响应速率设定。

 很多人赶脚摇一摇用着很欢乐~实际实现起来很简单。了解Sensor传感器使用方法即可。

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


首先acticity要实现SensorEventListener接口

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

然后重写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方向就是手机的空间垂直方向,天空的方向为正,地心的方向为负

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

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

  mSensorManager.registerListener(this, 

  mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 

  //还有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等,

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

  SensorManager.SENSOR_DELAY_NORMAL);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值