android摇一摇功能是通过手机中的加速度传感器实现的。当加速度大于某一值时,我们认为手机发生摇动,进而进行更多的处理。

功能实现主要有以下几个步骤:

 

1.添加权限

2.获取传感器管理器

 
SensorManager manager = (SensorManager) this.getSystemService(Service.SENSOR_SERVICE);
 
3.编写传感器监听器,继承SensorEventListener,其中Sensor.TYPE_ACCELEROMETER为加速度传感器的类型,17是晃动的幅度,有些手机怎么晃动都很难超过20
 
public class MySensorEventListener implements SensorEventListener {  @Override  public void onSensorChanged(SensorEvent event) { //获取传感器类型  int sensorType = event.sensor.getType(); //values[0]:X轴,values[1]:Y轴,values[2]:Z轴  float[] values = event.values; //如果传感器类型为加速度传感器,则判断是否为摇一摇  if(sensorType == Sensor.TYPE_ACCELEROMETER){ if ((Math.abs(values[0]) > 17 || Math.abs(values[1]) > 17 || Math .abs(values[2]) > 17)) { Log.d("sensor x ", "============ values[0] = " + values[0]); Log.d("sensor y ", "============ values[1] = " + values[1]); Log.d("sensor z ", "============ values[2] = " + values[2]); //在这里编写功能代码。。。 } } } @Override  public void onAccuracyChanged(Sensor sensor, int accuracy) { } }
 
4.注册监听器
 
 
listener = new MySensorEventListener(this);

manager.registerListener(listener, manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);

以上便是实现摇一摇功能的主要步骤,demo源码地址https://github.com/Sunnick/Shake,有兴趣的童鞋可以下载。

 
以上如有不当之处,欢迎指正,谢谢。

如果各位有好的想法,欢迎关注我的公众号(程序员顺仔)或留言讨论~

android摇一摇功能实现_第1张图片

 

更多相关文章

  1. Android记事本NotePad应用功能拓展(五)
  2. android中自动提示、补全、连接的功能实现
  3. 【Android-View】基于原生View的简单功能定制
  4. android 学习笔记3--静默安装功能的实现
  5. Android传感器编程入门(二)
  6. Android 拨打电话功能
  7. 如何添加Android返回键的退出功能

随机推荐

  1. Android启动页上下白屏适配
  2. Android自学笔记-7-Android中的junit
  3. 【Android 电量优化】JobScheduler 源码
  4. Android NDK 知识系列(一)
  5. Android NDK编程入门
  6. 学习Android过程中的一些博客或工具收集
  7. Android's HTTP Clients -Android的http
  8. 最近整理的Android学习笔记
  9. 命令行下Android应用开发
  10. 【Android】魅族Flyme OS 3摄像头无法预