做自(zì)由與創造的先行者

Android環境傳感器

Android開(kāi)發手冊

Android 平台提供四種傳感器,用(yòng)來(lái)監控各種環境屬性。您可以使用(yòng)這(zhè)些(xiē)傳感器來(lái)監控 Android 設備附近的相對(duì)環境濕度、照度、環境壓力和(hé)環境溫度。四種環境傳感器都基于硬件,要使用(yòng)它們,設備制造商必須将其内置到(dào)設備中。大(dà)多數設備制造商都會(huì)使用(yòng)光傳感器來(lái)控制屏幕亮(liàng)度,除此之外(wài),設備上(shàng)并不一定具備環境傳感器。因此,請(qǐng)務必在運行時(shí)驗證環境傳感器是否存在,然後再嘗試從(cóng)中獲取數據。

大(dà)多數動态傳感器和(hé)位置傳感器會(huì)爲每個 SensorEvent 返回傳感器值的多維數組,而與之不同的是,環境傳感器隻爲每個數據事(shì)件返回一個傳感器值。例如,以°C 爲單位的溫度或以 hPa 爲單位的壓力。此外(wài),動态傳感器和(hé)位置傳感器通常需要高(gāo)通或低(dī)通濾波,而環境傳感器一般不需要任何數據濾波或數據處理(lǐ)。表 1 總結了(le) Android 平台支持的環境傳感器。

表 1. Android 平台支持的環境傳感器。

傳感器 傳感器事(shì)件數據 度量單位 數據說明(míng)
TYPE_AMBIENT_TEMPERATURE event.values[0] °C 環境空(kōng)氣溫度。
TYPE_LIGHT event.values[0] lx 照度。
TYPE_PRESSURE event.values[0] hPa 或 mbar 環境空(kōng)氣壓力。
TYPE_RELATIVE_HUMIDITY event.values[0] % 環境相對(duì)濕度。
TYPE_TEMPERATURE event.values[0] °C 設備溫度。1

使用(yòng)光、壓力和(hé)溫度傳感器

從(cóng)光、壓力和(hé)溫度傳感器獲取的原始數據通常不需要校準、濾波或修改,因此它們是一些(xiē)最容易使用(yòng)的傳感器。要從(cóng)這(zhè)些(xiē)傳感器獲取數據,您需要先創建 SensorManager 類的實例,并用(yòng)它來(lái)獲取物理(lǐ)傳感器的實例。然後,在 onResume() 方法中注冊傳感器監聽器,并開(kāi)始在 onSensorChanged() 回調方法中處理(lǐ)傳入的傳感器數據。

您必須始終包含 onAccuracyChanged() 和(hé) onSensorChanged() 兩種回調方法的實現(xiàn)。此外(wài),請(qǐng)确保始終在 Activity 暫停時(shí)取消注冊傳感器。這(zhè)可防止傳感器持續感應數據并消耗電池電量。

使用(yòng)濕度傳感器

您可以使用(yòng)濕度傳感器獲取原始相對(duì)濕度數據,就像使用(yòng)光、壓力和(hé)溫度傳感器一樣。但(dàn)是,如果設備既有濕度傳感器 (TYPE_RELATIVE_HUMIDITY),也(yě)有溫度傳感器 (TYPE_AMBIENT_TEMPERATURE),您可以使用(yòng)這(zhè)兩個數據流來(lái)計(jì)算(suàn)露點和(hé)絕對(duì)濕度。

露點

露點是指在恒定氣壓下(xià),一定體積的空(kōng)氣使水(shuǐ)蒸氣凝結成水(shuǐ)而必須冷卻到(dào)的溫度。

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
上(shàng)一篇:Android位置傳感器