Android感应检测Sensor(简单介绍)

4、 注册SensorListener

sm.regesterListener(SensorEventListener listener, Sensor sensor, int rate);

第一个参数:监听Sensor事件,第二个参数是Sensor目标种类的值,第三个参数是延迟时间的精度密度。延迟时间的精密度参数如下:

参数

延迟时间

SensorManager.SENSOR_DELAY_FASTEST

0ms

SensorManager.SENSOR_DELAY_GAME

20ms

SensorManager.SENSOR_DELAY_UI

60ms

SensorManager.SENSOR_DELAY_NORMAL

200ms

因为感应检测Sensor的服务是否频繁和快慢都与电池参量的消耗有关,同时也会影响处理的效率,所以兼顾到消耗电池和处理效率的平衡,设置感应检测Sensor的延迟时间是一门重要的学问,需要根据应用系统的需求来做适当的设置。

感应检测Sensor的硬件检测组件收不同的厂商提供。你可以采用Sensor的getVendor(),Sensor()的getName()和Sensor的getVeesrion()方法来取得 厂商的名称、产品和产品版本。

5、取消注册

sm.unregisterListener(SensorEventListener listener)

加速度感应检测——Accelerometer

Accelerometer Sensor测量的是所有施加在设备上的力所产生的加速度的负值(包括重力加速度)。加速度所使用的单位是m/sec^2,数值是加速度的负值。

SensorEvent.values[0]:加速度在X轴的负值

SensorEvent.values[1]:加速度在Y轴的负值

SensorEvent.values[2]:加速度在Z轴的负值

例如:

当手机Z轴朝上平放在桌面上,并且从左到右推动手机,此时X轴上的加速度是正数。

当手机Z轴朝上静止放在桌面上,此时Z轴的加速度是+9.81m/sec^2。

当手机从空中自由落体,此时加速度是0

当手机向上以Am/sec2的加速度向空中抛出,此时加速度是A+9.81m/sec2

重力加速度感应检测——Gravity

重力加速度,其单位是m/sec^2,其坐标系与Accelerometer使用的一致。当手机静止时,gravity的值和Accelerometer的值是一致的。

线性加速度感应检测——Linear-Acceleration

Accelerometer、Gravity和Linear-Acceleration三者的关系如下公式:

accelerometer = gravity + linear-acceleration

地磁场感应检测——Magnetic-field

地磁场的单位是micro-Tesla(uT),检测的是X、Y、Z轴上的绝对地磁场。

陀螺仪感应检测——Gyroscope

陀螺仪的单位是弧度/秒,测量的是物体分别围绕X,Y,Z轴旋转的角速度。它的坐标系与加速度传感器的坐标系相同。逆时针方向旋转的角度正的。也就是说,如果设备逆时针旋转,观察者向X,Y,Z轴的正方向看去,就报告设备是正转的。请注意,这是标准的正旋转的数学定义。

光线感应检测——Light

values[0]:表示环境光照的水平,单位是SI lux。

位置逼近感应检测——Proximity

values[0]:逼近的距离,单位是厘米(cm)。有一些传感器只能支持近和远两种状态,这种情况下,传感器必须报告它在远状态下的maximum_range值和在近状态下的小值。

旋转矢量感应检测——Rotation Vector

旋转向量是用来表示设备的方向,它是由角度和轴组成,就是设备围绕x,y,z轴之一旋转θ角度。旋转向量的三个要素是,这样旋转向量的大小等于sin(θ/2),旋转向量的方向等于旋转轴的方向。

values[0]: x*sin(θ/2)

values[1]: y*sin(θ/2)

values[2]: z*sin(θ/2)

values[3]: cos(θ/2) (optional: only if value.length = 4)

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

上Android开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中的Sensor驱动框架是用于管理和处理各种传感器数据的软件框架。它的主要功能是提供一种标准化的接口,使应用程序可以轻松地访问和使用各种传感器。 Android中的Sensor驱动框架由以下两个主要组件组成: 1. Sensor HAL(硬件抽象层):这是Android操作系统与各种硬件传感器之间的接口。它定义了一组标准API,使Android可以与各种不同类型的传感器交互。 2. Sensor Manager:这是一个Android系统服务,它提供了一组API,使应用程序可以轻松地获取和使用各种传感器数据。它还负责管理各种传感器的注册和注销,以及传感器数据的传递和处理。 在Android中,可以使用以下几种传感器: 1. 加速度计(Accelerometer):用于测量设备的加速度。 2. 陀螺仪(Gyroscope):用于测量设备的旋转速度和方向。 3. 磁力计(Magnetometer):用于测量设备的磁场。 4. 温度传感器(Temperature Sensor):用于测量设备的温度。 5. 光传感器(Light Sensor):用于测量设备的光线强度。 6. 压力传感器(Pressure Sensor):用于测量环境的气压。 7. 重力传感器(Gravity Sensor):用于测量设备的重力加速度。 8. 线性加速度计(Linear Acceleration Sensor):用于测量设备在三个轴向上的线性加速度。 9. 旋转矢量传感器(Rotation Vector Sensor):用于测量设备的旋转矢量。 以上是Android中常用的传感器类型,每种传感器都有其特定的用途和应用场景。在开发Android应用程序时,可以根据需要选择合适的传感器来获取所需的数据,并使用Sensor驱动框架来管理和处理这些数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值