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)發