微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android感应检测Sensor(简单介绍),kotlin语言

实现以下两个SensorEventListener方法来监听,并取得感应检测Sensor状态:

//在感应检测到Sensor的精密度有变化时被调用到。

public void onAccuracyChanged(Senso sensor,int accuracy);

//在感应检测到Sensor的值有变化时会被调用到。

public void onSensorChanged(SensorEvent event);

3、实现取得感应检测Sensor目标各类的值

实现下列getSensorList()方法来取得感应检测Sensor的值;

List sensors = sm.getSensorList(Sensor.TYPE_TEMPERATURE);

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

rometer、Gravity和Linear-acceleration三者的关系如下公式:

accelerometer = gravity + linear-acceleration

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐