光傳感器(Light Sensor)
光傳感器主要用來檢測(cè)手機(jī)周圍光的強(qiáng)度,與其他傳感器不同的是,該傳感器只讀取一個(gè)數(shù)值即手機(jī)周圍光的強(qiáng)度。光線傳感器輸出的值以 lux 為單位,通常的動(dòng)態(tài)范圍為1~30000lux。光線傳感器的分辨率為1lux。
光線傳感器通常被用于根據(jù)環(huán)境光線來調(diào)節(jié)屏幕亮度。
光線傳感器中定一個(gè)常量值(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(日出時(shí)分)
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(比上一個(gè)還要明媚)
接近傳感器(Proximity Sensor)
接近傳感器包含一個(gè)在光電探測(cè)器邊上的弱紅外 LED(發(fā)光二極管),當(dāng)有物體距離傳感器足夠近時(shí),光電探測(cè)器會(huì)檢測(cè)到物體反射的紅外光。
LED 并不是一直亮著,而是以一定的脈沖開關(guān)。光電探測(cè)器鎖定在一定的脈沖頻率上從而讓光電探測(cè)器對(duì)在該頻率內(nèi)未改變的光線并不敏感。光電探測(cè)器只會(huì)捕捉以 LED 準(zhǔn)確頻率為脈沖的光線。脈沖頻率并不可控,因?yàn)榻咏鼈鞲衅髌魍ǔJ窃趦?nèi)部檢測(cè)光電探測(cè)器信號(hào)的第三方硬件,它只確定接近狀態(tài),通常只能為應(yīng)用程序提供遠(yuǎn)或近兩種狀態(tài)。
一些接近傳感器會(huì)測(cè)量以厘米為單位的傳感器與物體之間的距離,另外一部分接近傳感器則用來測(cè)量在一個(gè)閥值距離內(nèi)物體是否存在。
二元傳感器典型的動(dòng)態(tài)范圍在5cm 左右,更有意義的數(shù)據(jù)是范圍在2cm 到4cm 的近似距離閥值。
二元輸出的接近傳感器是基于中斷的,傳感器會(huì)在過渡到接近狀態(tài)(由近及遠(yuǎn)或者由遠(yuǎn)及近)
時(shí)產(chǎn)生對(duì) onSensorChanged() 方法的調(diào)用。
氣壓傳感器(Pressure Sensor)
氣壓傳感器用來測(cè)量的是 MEMS 氣壓。典型的 MEMS 壓力傳感器的測(cè)量范圍是300~1100 mbar,分辨率為0.01mbar。
氣壓以每小時(shí)0.5 millibar(mbar)漂移是正常的。由于大氣潮汐和溫度改變等方面的影響,氣壓一般周期性(每天)的上升下降兩次。
通過使用 SensorManager.getAltitude(float p0, float p)可以根據(jù)氣壓計(jì)算出海拔高度(單位米)。該方法基于測(cè)出的壓力 p 和海平面壓力 p0,使用一個(gè)標(biāo)準(zhǔn)的物理公式來計(jì)算海拔高度(標(biāo)高)。海平面的壓力可以使用:
SensorManager.PRESSURE_STANDARD_ATMOSPHERE 給出了基于相對(duì)海拔高度的標(biāo)準(zhǔn)氣壓1013.25f。
氣象站一般會(huì)給出平均海平面壓力。
SensorManager.getAltitude使用的計(jì)算公式如下所示:
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 為海平面標(biāo)準(zhǔn)溫服,L 為溫度遞減速率,R 為通用氣體常數(shù),g 為重力加速度,M 為干燥空氣的摩爾質(zhì)量。
相對(duì)濕度傳感器(Relative Humidity)
相對(duì)濕度傳感器以當(dāng)前空氣中的水蒸氣百分比提供當(dāng)前環(huán)境濕度。如果設(shè)備上同時(shí)存在溫度傳感器和相對(duì)濕度傳感器, 那么就可以計(jì)算當(dāng)前環(huán)境的露點(diǎn)溫度(水蒸氣達(dá)到凝結(jié)點(diǎn)的溫度)和絕對(duì)濕度(指定體積的空氣中水的質(zhì)量)。
露點(diǎn)溫度計(jì)算
露點(diǎn)溫度是給定體積的氣體在恒定的大氣壓力下,水蒸汽由氣體轉(zhuǎn)換成水的溫度,下面顯示了如何計(jì)算露點(diǎn)的公式:
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 為露點(diǎn)溫度,單位:攝氏度
t 為實(shí)際溫度,單位:攝氏度
RH 為實(shí)際的相對(duì)濕度,單位:百分比
m 為17.62
TnTn 為243.12
絕對(duì)濕度
絕對(duì)濕度是給定體積的空氣中水的質(zhì)量。絕對(duì)濕度的測(cè)量單位是:克/立方米(grams/meter3meter3),以下是計(jì)算絕對(duì)濕度的公式:
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 為絕對(duì)濕度,單位為 (grams/meter3meter3)
t 為實(shí)際溫度,單位:攝氏度
RH 為實(shí)際相對(duì)濕度,單位:百分比
m 為17.62
TnTn 為243.12 攝氏度
A 為 6.112 hPa
環(huán)境溫度傳感器(Ambient Temperature)
環(huán)境溫度傳感器提供當(dāng)前環(huán)境的溫度,以攝氏度為單位。環(huán)境溫度傳感器是為了取代正在被逐漸淘汰的 TYPE_TEMPERATURE。
溫度傳感器 (Temperature)
Android 溫度傳感器用于檢測(cè) CPU 溫度。從而對(duì)內(nèi)部硬件進(jìn)行校準(zhǔn)。自 Android 4.0之后,該傳感器逐漸被淘汰,取而代之的是環(huán)境溫度傳感器。