Android传感器完全解析

本文介绍了Android传感器的类型,包括运动传感器、环境传感器和位置传感器,详细讲解了传感器的实现流程,如获取SensorManager、注册和注销传感器。还以方向传感器为例,阐述了如何使用加速度传感器和地磁传感器计算设备的旋转角度,提供了封装好的SensorUtils类供参考。
摘要由CSDN通过智能技术生成

什么是传感器

维基百科是这样定义的:传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。


常用传感器介绍与用法

Android平台支持三个大类的传感器

  • Motion sensors(运动传感器)

这些传感器测量加速力,并沿三个轴的旋转力。此类别包括加速度计,重力感应器, 陀螺仪和旋转矢量传感器。

  • Environmental sensors (环境传感器)

这些传感器测量各种环境参数,例如环境空气温度和压力,照明和湿度。此类别包括气压计,光度计,和温度计。

  • Position sensors (位置传感器)

这些传感器测量设备的物理位置。这个类别包括方向传感器和磁力计。


传感器实现流程

第一步:得到SensorManager

SensorManager mSensorManager = (SensorManager) mContext
                .getSystemService(Context.SENSOR_SERVICE);

第二步:注册传感器

Sensor sensor = mSensorManager
                .getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        if (null != sensor)
            mSensorManager.registerListener(this, sensor,
                    SensorManager.SENSOR_DELAY_NORMAL);

registerListener这个方法有三个参数。

  • 第一个参数是传感器数据变化的监听器

我们需要去实现SensorEventListener接口,他里面有两个回调方法,

@Override
  public void onSensorChanged(SensorEvent event) {
   //当传感器的数值发生变化时调用
  }

  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
   //传感器的精度发生变化时调用
  }

onSensorChanged方法只有一个SensorEvent类型的参数event,其中SensorEvent类有一个values变量非常重要,该变量的类型是float[]。但该变量最多只有3个元素,而且根据传感器的不同,values变量中元素所代表的含义也不同。
关于values值的详细含义请看参考文章!!!

  • 第二个参数是我们需要监听的传感器

                
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值