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设计开发|小程序建设开发