android摇一摇功能实现

来源:互联网 发布:淘宝子账号名字大全 编辑:程序博客网 时间:2024/06/01 10:29

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

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


1.添加权限

<!--重力加速度传感器权限 --><uses-permission android:name="android.hardware.sensor.accelerometer"/>

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,有兴趣的童鞋可以下载。
以上如有不当之处,欢迎指正,谢谢。

0 0
原创粉丝点击