做自由与创造的先行者

Android环境传感器

Android开发手册

Android 平台提供四种传感器,用来监控各种环境属性。您可以使用这些传感器来监控 Android 设备附近的相对环境湿度、照度、环境压力和环境温度。四种环境传感器都基于硬件,要使用它们,设备制造商必须将其内置到设备中。大多数设备制造商都会使用光传感器来控制屏幕亮度,除此之外,设备上并不一定具备环境传感器。因此,请务必在运行时验证环境传感器是否存在,然后再尝试从中获取数据。

大多数动态传感器和位置传感器会为每个 SensorEvent 返回传感器值的多维数组,而与之不同的是,环境传感器只为每个数据事件返回一个传感器值。例如,以°C 为单位的温度或以 hPa 为单位的压力。此外,动态传感器和位置传感器通常需要高通或低通滤波,而环境传感器一般不需要任何数据滤波或数据处理。表 1 总结了 Android 平台支持的环境传感器。

表 1. Android 平台支持的环境传感器。

传感器 传感器事件数据 度量单位 数据说明
TYPE_AMBIENT_TEMPERATURE event.values[0] °C 环境空气温度。
TYPE_LIGHT event.values[0] lx 照度。
TYPE_PRESSURE event.values[0] hPa 或 mbar 环境空气压力。
TYPE_RELATIVE_HUMIDITY event.values[0] % 环境相对湿度。
TYPE_TEMPERATURE event.values[0] °C 设备温度。1

使用光、压力和温度传感器

从光、压力和温度传感器获取的原始数据通常不需要校准、滤波或修改,因此它们是一些最容易使用的传感器。要从这些传感器获取数据,您需要先创建 SensorManager 类的实例,并用它来获取物理传感器的实例。然后,在 onResume() 方法中注册传感器监听器,并开始在 onSensorChanged() 回调方法中处理传入的传感器数据。

您必须始终包含 onAccuracyChanged() 和 onSensorChanged() 两种回调方法的实现。此外,请确保始终在 Activity 暂停时取消注册传感器。这可防止传感器持续感应数据并消耗电池电量。

使用湿度传感器

您可以使用湿度传感器获取原始相对湿度数据,就像使用光、压力和温度传感器一样。但是,如果设备既有湿度传感器 (TYPE_RELATIVE_HUMIDITY),也有温度传感器 (TYPE_AMBIENT_TEMPERATURE),您可以使用这两个数据流来计算露点和绝对湿度。

露点

露点是指在恒定气压下,一定体积的空气使水蒸气凝结成水而必须冷却到的温度。

网站建设开发|APP设计开发|小程序建设开发
上一篇:Android位置传感器