android摇一摇功能实现
16lz
2021-01-23
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记事本NotePad应用功能拓展(五)
- android中自动提示、补全、连接的功能实现
- 【Android-View】基于原生View的简单功能定制
- android 学习笔记3--静默安装功能的实现
- Android传感器编程入门(二)
- Android 拨打电话功能
- 如何添加Android返回键的退出功能