光傳感器(Light Sensor)
光傳感器主要用來檢測手機周圍光的強度,與其他傳感器不同的是,該傳感器只讀取一個數值即手機周圍光的強度。光線傳感器輸出的值以 lux 為單位,通常的動態范圍為1~30000lux。光線傳感器的分辨率為1lux。
光線傳感器通常被用于根據環境光線來調節屏幕亮度。
光線傳感器中定一個常量值(SensorManager):
LIGHT_NO_MOON = 0.001f luminance at night with no moon in lux(沒有月亮的晚上)
LIGHT_FULLMOON = 0.25f luminance at night with full moon in lux(滿月的晚上)
LIGHT_CLOUDY = 100.0f luminance under a cloudy sky in lux(陰天)
LIGHT_SUNRISE = 400.0f luminance at sunrise in lux(日出時分)
LIGHT_OVERCAST = 10000.0f luminance under an overcast sky in lux(多云天氣)
LIGHT_SHADE = 20000.0f luminance in shade in lux(日光下的物體影子里)
LIGHT_SUNLIGHT = 110000.0f luminance of sunlight in lux(陽光明媚)
LIGHT_SUNLIGHT_MAX = 120000.0f Maximum luminance of sunlight in lux(比上一個還要明媚)
接近傳感器(Proximity Sensor)
接近傳感器包含一個在光電探測器邊上的弱紅外 LED(發光二極管),當有物體距離傳感器足夠近時,光電探測器會檢測到物體反射的紅外光。
LED 并不是一直亮著,而是以一定的脈沖開關。光電探測器鎖定在一定的脈沖頻率上從而讓光電探測器對在該頻率內未改變的光線并不敏感。光電探測器只會捕捉以 LED 準確頻率為脈沖的光線。脈沖頻率并不可控,因為接近傳感器器通常是在內部檢測光電探測器信號的第三方硬件,它只確定接近狀態,通常只能為應用程序提供遠或近兩種狀態。
一些接近傳感器會測量以厘米為單位的傳感器與物體之間的距離,另外一部分接近傳感器則用來測量在一個閥值距離內物體是否存在。
二元傳感器典型的動態范圍在5cm 左右,更有意義的數據是范圍在2cm 到4cm 的近似距離閥值。
二元輸出的接近傳感器是基于中斷的,傳感器會在過渡到接近狀態(由近及遠或者由遠及近)
時產生對 onSensorChanged() 方法的調用。
氣壓傳感器(Pressure Sensor)
氣壓傳感器用來測量的是 MEMS 氣壓。典型的 MEMS 壓力傳感器的測量范圍是300~1100 mbar,分辨率為0.01mbar。
氣壓以每小時0.5 millibar(mbar)漂移是正常的。由于大氣潮汐和溫度改變等方面的影響,氣壓一般周期性(每天)的上升下降兩次。
通過使用 SensorManager.getAltitude(float p0, float p)可以根據氣壓計算出海拔高度(單位米)。該方法基于測出的壓力 p 和海平面壓力 p0,使用一個標準的物理公式來計算海拔高度(標高)。海平面的壓力可以使用:
SensorManager.PRESSURE_STANDARD_ATMOSPHERE 給出了基于相對海拔高度的標準氣壓1013.25f。
氣象站一般會給出平均海平面壓力。
SensorManager.getAltitude使用的計算公式如下所示:
h(p0,p)=T0L(1?(pp0)RLgM)=44330?(1?(pp0)15.255)h(p0,p)=T0L(1?(pp0)RLgM)=44330?(1?(pp0)15.255)
T0T0 為海平面標準溫服,L 為溫度遞減速率,R 為通用氣體常數,g 為重力加速度,M 為干燥空氣的摩爾質量。
相對濕度傳感器(Relative Humidity)
相對濕度傳感器以當前空氣中的水蒸氣百分比提供當前環境濕度。如果設備上同時存在溫度傳感器和相對濕度傳感器, 那么就可以計算當前環境的露點溫度(水蒸氣達到凝結點的溫度)和絕對濕度(指定體積的空氣中水的質量)。
露點溫度計算
露點溫度是給定體積的氣體在恒定的大氣壓力下,水蒸汽由氣體轉換成水的溫度,下面顯示了如何計算露點的公式:
td(t,RH)=Tn?ln(RH100%)+mtTn+tm?(ln(RH100%)+mtTn+t)td(t,RH)=Tn?ln(RH100%)+mtTn+tm?(ln(RH100%)+mtTn+t)
其中
tdtd 為露點溫度,單位:攝氏度
t 為實際溫度,單位:攝氏度
RH 為實際的相對濕度,單位:百分比
m 為17.62
TnTn 為243.12
絕對濕度
絕對濕度是給定體積的空氣中水的質量。絕對濕度的測量單位是:克/立方米(grams/meter3meter3),以下是計算絕對濕度的公式:
dv(t,RH)=216.7?A?RH100%?exp(m?tTn+t))273.15+tdv(t,RH)=216.7?A?RH100%?exp(m?tTn+t))273.15+t
其中
dvdv 為絕對濕度,單位為 (grams/meter3meter3)
t 為實際溫度,單位:攝氏度
RH 為實際相對濕度,單位:百分比
m 為17.62
TnTn 為243.12 攝氏度
A 為 6.112 hPa
環境溫度傳感器(Ambient Temperature)
環境溫度傳感器提供當前環境的溫度,以攝氏度為單位。環境溫度傳感器是為了取代正在被逐漸淘汰的 TYPE_TEMPERATURE。
溫度傳感器 (Temperature)
Android 溫度傳感器用于檢測 CPU 溫度。從而對內部硬件進行校準。自 Android 4.0之后,該傳感器逐漸被淘汰,取而代之的是環境溫度傳感器。