Android--从零单排系列(5)--常用传感器的使用

本文介绍了如何在Android系统中使用加速度传感器。通过获取传感器管理器和服务,可以得到加速度传感器,并设置监听器来监测手机在X、Y、Z轴上的加速度变化。当任一轴的加速度超过阈值时,将触发特定的动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android系统带的传感器有很多种,需要的话可以直接百度或者谷歌一下,在这里我就简单的举例一个

1,获取系统的传感器

    //获取到一个传感器管理器  
            sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  
    //获得一个加速度传感器  
            Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);  

2,获取系统的传感器

简简单单获取到一个传感器的管理器,然后在获取到加速度的传感器,获取传感器的API有很多这里就列举了一个加速度的传感器,
拿到传感器之后,需要设置监听

sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME);  

注册传感器的监听一共需要三个参数,第一个是监听器,第二个是加速度传感器,第三个是传感器的灵敏度,传感器的灵敏度一共分为四级,如下,从上往下灵敏度依次降低:

1. SENSOR_DELAY_FASTEST

2. SENSOR_DELAY_GAME
3. SENSOR_DELAY_UI
4. SENSOR_DELAY_NORMAL

OK ,注册完之后,我们还是来看看这个监听器是什么吧:

    private SensorEventListener listener = new SensorEventListener() {  
            //当手机的加速度发生变化时调用  
            @Override  
            public void onSensorChanged(SensorEvent event) {  
                //获取手机在不同方向上加速度的变化  
                float valuesX = Math.abs(event.values[0]);  
                float valuesY = Math.abs(event.values[1]);  
                float valuesZ = Math.abs(event.values[2]);  

                if (valuesX > 17 || valuesY > 17 || valuesZ > 17) {  
                    startAnimation();  
                    playSound();  
                }  
            }  

            @Override  
            public void onAccuracyChanged(Sensor sensor, int accuracy) {  

            }  
        };  

这个listener中一共就两个方法,一个是当手机的加速度发生改变的时候调用,还有一个是当传感器的灵敏度发生改变的时候调用,当手机的加速度发生改变的时候,我们可以获取到手机在X 、Y、Z 三个维度上的变化值,拿到这个值之后,我们只需要进行简单的比较即可,如果有任意一个方向的值大于17,则认为有人在晃动手机,这个时候开启动画和声音的播放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值