做(zuò)自(zì)由與創造的先行(xíng)者

Android環境傳感器

Android開(kāi)發手冊

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

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

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

傳感器 傳感器事件數(shù)據 度量單位 數(shù)據說明(míng)
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

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

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

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

使用濕度傳感器

您可(kě)以使用濕度傳感器獲取原始相對濕度數(shù)據,就像使用光(guāng)、壓力和(hé)溫度傳感器一(yī)樣。但(dàn)是,如(rú)果設備既有濕度傳感器 (TYPE_RELATIVE_HUMIDITY),也有溫度傳感器 (TYPE_AMBIENT_TEMPERATURE),您可(kě)以使用這(zhè)兩個數(shù)據流來計算露點和(hé)絕對濕度。

露點

露點是指在恒定氣壓下(xià),一(yī)定體積的空氣使水蒸氣凝結成水而必須冷(lěng)卻到的溫度。

網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發
上(shàng)一(yī)篇:Android位置傳感器