Android 加速度传感器的使用详解

简介: Android 加速度传感器的使用详解

前言: 利用加速度传感器,实现微信摇一摇的功能。

直接看AcceleratedSensorActivity类中的代码,具体注释已经在代码中给出:

public class AcceleratedSensorActivity extends AppCompatActivity implements SensorEventListener {
    //定义传感器管理器
    private SensorManager sensorManager;
    //定义振动器
    private Vibrator vibrator;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_accelerated_sensor);
        //获取传感器管理器对象
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        //获取振动器
        vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
    }
    @Override
    protected void onResume() {
        super.onResume();
        //为加速度传感器注册监听器
        sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
    }
    @Override
    public void onSensorChanged(SensorEvent event) { //传感器的值发生变化时,触发
        //获取传感器类型
        int sensorType = event.sensor.getType();
        if (sensorType == Sensor.TYPE_ACCELEROMETER) {
            //获取传感器的值
            float[] values = event.values;
            //values[1] 指的是x轴方向
            //values[2] 指的是y轴方向
            //values[3] 指的是z轴方向
            if (values[0] > 15 || values[1] > 15 || values[2] > 15) {
                Toast.makeText(this, "摇一摇!", Toast.LENGTH_SHORT).show();
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("发生摇一摇了").show();
                //设置振动器的频率
                vibrator.vibrate(500);
                //取消注册的监听器
                sensorManager.unregisterListener(this);
            }
        }
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {//传感器的精度发生变化时,触发
    }
}

最后一定要在清单文件中加入控制设备振动的权限:

<uses-permission android:name="android.permission.VIBRATE" />

具体效果就不演示了,以上就是加速度传感器的简单使用!


目录
相关文章
|
8月前
|
传感器 Android开发
Android MediaTek 添加LPS22HB压力传感器驱动
Android MediaTek 添加LPS22HB压力传感器驱动
53 0
|
8月前
|
传感器 物联网 Android开发
【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)
【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)
234 1
|
传感器 Android开发
Android 中磁场传感器的使用详解
Android 中磁场传感器的使用详解
212 0
|
传感器 Android开发
Android 中光线传感器的使用详解
Android 中光线传感器的使用详解
167 0
|
传感器 Java Android开发
Android11.0 平板默认横屏且兼容重力传感器方案
Android11.0 平板默认横屏且兼容重力传感器方案
1322 0
|
传感器 物联网 Android开发
Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面
Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面
277 0
Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面
|
传感器 Java 定位技术