Android 開(kāi)發(fā)筆記十一

傳感器學(xué)習(xí)

通過(guò)手機(jī)來(lái)感受溫度、壓力蝶念、重力和光線等。

在Android2.3 gingerbread系統(tǒng)中芋绸,google提供了11種傳感器供應(yīng)用層使用媒殉。

#define?SENSOR_TYPE_ACCELEROMETER???????1?//加速度

#define?SENSOR_TYPE_MAGNETIC_FIELD??????2?//磁力

#define?SENSOR_TYPE_ORIENTATION?????????3?//方向

#define?SENSOR_TYPE_GYROSCOPE???????????4?//陀螺儀

#define?SENSOR_TYPE_LIGHT???????????????5?//光線感應(yīng)

#define?SENSOR_TYPE_PRESSURE????????????6?//壓力

#define?SENSOR_TYPE_TEMPERATURE?????????7?//溫度

#define?SENSOR_TYPE_PROXIMITY???????????8?//接近

#define?SENSOR_TYPE_GRAVITY?????????????9?//重力

#define?SENSOR_TYPE_LINEAR_ACCELERATION?10//線性加速度

#define?SENSOR_TYPE_ROTATION_VECTOR?????11//旋轉(zhuǎn)矢量

1 加速度傳感器

加速度傳感器又叫G-sensor,返回x摔敛、y廷蓉、z三軸的加速度數(shù)值。

該數(shù)值包含地心引力的影響马昙,單位是m/s^2桃犬。

將手機(jī)平放在桌面上,x軸默認(rèn)為0行楞,y軸默認(rèn)0攒暇,z軸默認(rèn)9.81。

將手機(jī)朝下放在桌面上子房,z軸為-9.81形用。

將手機(jī)向左傾斜就轧,x軸為正值。

將手機(jī)向右傾斜尾序,x軸為負(fù)值钓丰。

將手機(jī)向上傾斜,y軸為負(fù)值每币。

將手機(jī)向下傾斜携丁,y軸為正值。

加速度傳感器可能是最為成熟的一種mems產(chǎn)品兰怠,市場(chǎng)上的加速度傳感器種類很多梦鉴。

手機(jī)中常用的加速度傳感器有BOSCH(博世)的BMA系列,AMK的897X系列揭保,ST的LIS3X系列等肥橙。

這些傳感器一般提供±2G至±16G的加速度測(cè)量范圍,采用I2C或SPI接口和MCU相連秸侣,數(shù)據(jù)精度小于16bit存筏。

2 磁力傳感器

磁力傳感器簡(jiǎn)稱為M-sensor,返回x味榛、y椭坚、z三軸的環(huán)境磁場(chǎng)數(shù)據(jù)。

該數(shù)值的單位是微特斯拉(micro-Tesla)搏色,用uT表示善茎。

單位也可以是高斯(Gauss),1Tesla=10000Gauss频轿。

硬件上一般沒(méi)有獨(dú)立的磁力傳感器垂涯,磁力數(shù)據(jù)由電子羅盤(pán)傳感器提供(E-compass)。

電子羅盤(pán)傳感器同時(shí)提供下文的方向傳感器數(shù)據(jù)航邢。

3 方向傳感器

方向傳感器簡(jiǎn)稱為O-sensor耕赘,返回三軸的角度數(shù)據(jù),方向數(shù)據(jù)的單位是角度膳殷。

為了得到精確的角度數(shù)據(jù)操骡,E-compass需要獲取G-sensor的數(shù)據(jù),

經(jīng)過(guò)計(jì)算生產(chǎn)O-sensor數(shù)據(jù)秽之,否則只能獲取水平方向的角度。

方向傳感器提供三個(gè)數(shù)據(jù)吃既,分別為azimuth考榨、pitch和roll规丽。

azimuth:方位松捉,返回水平時(shí)磁北極和Y軸的夾角,范圍為0°至360°蔑歌。

0°=北,90°=東掀鹅,180°=南散休,270°=西。

pitch:x軸和水平面的夾角乐尊,范圍為-180°至180°戚丸。

當(dāng)z軸向y軸轉(zhuǎn)動(dòng)時(shí),角度為正值扔嵌。

roll:y軸和水平面的夾角限府,由于歷史原因,范圍為-90°至90°痢缎。

當(dāng)x軸向z軸移動(dòng)時(shí)胁勺,角度為正值。

電子羅盤(pán)在獲取正確的數(shù)據(jù)前需要進(jìn)行校準(zhǔn)独旷,通呈鹚耄可用8字校準(zhǔn)法。

8字校準(zhǔn)法要求用戶使用需要校準(zhǔn)的設(shè)備在空中做8字晃動(dòng)嵌洼,

原則上盡量多的讓設(shè)備法線方向指向空間的所有8個(gè)象限案疲。

手機(jī)中使用的電子羅盤(pán)芯片有AKM公司的897X系列,ST公司的LSM系列以及雅馬哈公司等等咱台。

由于需要讀取G-sensor數(shù)據(jù)并計(jì)算出M-sensor和O-sensor數(shù)據(jù)络拌,

因此廠商一般會(huì)提供一個(gè)后臺(tái)daemon來(lái)完成工作,電子羅盤(pán)算法一般是公司私有產(chǎn)權(quán)回溺。

4 陀螺儀傳感器

陀螺儀傳感器叫做Gyro-sensor春贸,返回x、y遗遵、z三軸的角加速度數(shù)據(jù)萍恕。

角加速度的單位是radians/second。

根據(jù)Nexus S手機(jī)實(shí)測(cè):

水平逆時(shí)針旋轉(zhuǎn)车要,Z軸為正允粤。

水平逆時(shí)針旋轉(zhuǎn),z軸為負(fù)翼岁。

向左旋轉(zhuǎn)类垫,y軸為負(fù)。

向右旋轉(zhuǎn)琅坡,y軸為正悉患。

向上旋轉(zhuǎn),x軸為負(fù)榆俺。

向下旋轉(zhuǎn)售躁,x軸為正坞淮。

ST的L3G系列的陀螺儀傳感器比較流行,iphone4和google的nexus s中使用該種傳感器陪捷。

5 光線感應(yīng)傳感器

光線感應(yīng)傳感器檢測(cè)實(shí)時(shí)的光線強(qiáng)度回窘,光強(qiáng)單位是lux,其物理意義是照射到單位面積上的光通量市袖。

光線感應(yīng)傳感器主要用于Android系統(tǒng)的LCD自動(dòng)亮度功能啡直。

可以根據(jù)采樣到的光強(qiáng)數(shù)值實(shí)時(shí)調(diào)整LCD的亮度。

6 壓力傳感器

壓力傳感器返回當(dāng)前的壓強(qiáng)凌盯,單位是百帕斯卡hectopascal(hPa)付枫。

7 溫度傳感器

溫度傳感器返回當(dāng)前的溫度。

8 接近傳感器

接近傳感器檢測(cè)物體與手機(jī)的距離驰怎,單位是厘米阐滩。

一些接近傳感器只能返回遠(yuǎn)和近兩個(gè)狀態(tài),

因此县忌,接近傳感器將最大距離返回遠(yuǎn)狀態(tài)掂榔,小于最大距離返回近狀態(tài)。

接近傳感器可用于接聽(tīng)電話時(shí)自動(dòng)關(guān)閉LCD屏幕以節(jié)省電量症杏。

一些芯片集成了接近傳感器和光線傳感器兩者功能装获。

下面三個(gè)傳感器是Android2新提出的傳感器類型,目前還不太清楚有哪些應(yīng)用程序使用厉颤。

9 重力傳感器

重力傳感器簡(jiǎn)稱GV-sensor穴豫,輸出重力數(shù)據(jù)。

在地球上逼友,重力數(shù)值為9.8精肃,單位是m/s^2。

坐標(biāo)系統(tǒng)與加速度傳感器相同帜乞。

當(dāng)設(shè)備復(fù)位時(shí)司抱,重力傳感器的輸出與加速度傳感器相同。

10 線性加速度傳感器

線性加速度傳感器簡(jiǎn)稱LA-sensor黎烈。

線性加速度傳感器是加速度傳感器減去重力影響獲取的數(shù)據(jù)习柠。

單位是m/s^2,坐標(biāo)系統(tǒng)與加速度傳感器相同照棋。

加速度傳感器资溃、重力傳感器和線性加速度傳感器的計(jì)算公式如下:

加速度 = 重力 + 線性加速度

11 旋轉(zhuǎn)矢量傳感器

旋轉(zhuǎn)矢量傳感器簡(jiǎn)稱RV-sensor。

旋轉(zhuǎn)矢量代表設(shè)備的方向烈炭,是一個(gè)將坐標(biāo)軸和角度混合計(jì)算得到的數(shù)據(jù)溶锭。

RV-sensor輸出三個(gè)數(shù)據(jù):

x*sin(theta/2)

y*sin(theta/2)

z*sin(theta/2)

sin(theta/2)是RV的數(shù)量級(jí)。

RV的方向與軸旋轉(zhuǎn)的方向相同梳庆。

RV的三個(gè)數(shù)值暖途,與cos(theta/2)組成一個(gè)四元組。

RV的數(shù)據(jù)沒(méi)有單位膏执,使用的坐標(biāo)系與加速度相同驻售。

舉例:

sensors_event_t.data[0] = x*sin(theta/2)

sensors_event_t.data[1] = y*sin(theta/2)

sensors_event_t.data[2] = z*sin(theta/2)

sensors_event_t.data[3] =?? cos(theta/2)

GV、LA和RV的數(shù)值沒(méi)有物理傳感器可以直接給出更米,

需要G-sensor欺栗、O-sensor和Gyro-sensor經(jīng)過(guò)算法計(jì)算后得出。

如何使用傳感器

1征峦、獲取SensorManager對(duì)象

2迟几、獲取Sensor對(duì)象

3、注冊(cè)Sensor對(duì)象


SersorManager提供的注冊(cè)傳感器的方法為registerListener(SensorListener listener, Sensor sensor, int rate)該方法中三個(gè)參數(shù)說(shuō)明如下:

listener:監(jiān)聽(tīng)傳感器事件的監(jiān)聽(tīng)器

sensor:傳感器對(duì)象

rate:指定獲取傳感器數(shù)據(jù)的頻率

rate可以獲取傳感器數(shù)據(jù)的頻率栏笆,支持如下幾個(gè)頻率值:

SENSOR_DELAY_FASTEST:最快类腮,延遲最小。

SENSOR_DELAY_GAME:適合游戲的頻率蛉加。

SENSOR_DELAY_NORMAL:正常頻率

SENSOR_DELAY_UI:適合普通用戶界面的頻率蚜枢。

4、重寫(xiě)onAccuracyChanged,onSensorChanged兩個(gè)方法

5针饥、注銷Sensor對(duì)象


檢測(cè)傳感器


或者在配置文件中加入過(guò)濾器:

注意事項(xiàng):

不要忘記注銷(消耗電量)厂抽;不要再模擬器上測(cè)試代碼;不要阻塞onSensorChanged()方法丁眼;避免使用過(guò)時(shí)的方法和傳感器類型筷凤;在使用的時(shí)候先驗(yàn)證傳感器;謹(jǐn)慎選擇傳感器延時(shí)苞七。


LBS定位學(xué)習(xí)

LBS基于位置的應(yīng)用:簽到藐守、定位、導(dǎo)航莽鸭、路線圖等吗伤。。硫眨。足淆。。

如何應(yīng)用百度地圖:注冊(cè)--申請(qǐng)密鑰--配置環(huán)境及發(fā)布礁阁,按照下面的網(wǎng)址去配置開(kāi)發(fā):

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巧号,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子姥闭,更是在濱河造成了極大的恐慌丹鸿,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棚品,死亡現(xiàn)場(chǎng)離奇詭異靠欢,居然都是意外死亡廊敌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門门怪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)骡澈,“玉大人,你說(shuō)我怎么就攤上這事掷空±吲梗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵坦弟,是天一觀的道長(zhǎng)护锤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)酿傍,這世上最難降的妖魔是什么烙懦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮赤炒,結(jié)果婚禮上修陡,老公的妹妹穿的比我還像新娘。我一直安慰自己可霎,他們只是感情好魄鸦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著癣朗,像睡著了一般拾因。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旷余,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天绢记,我揣著相機(jī)與錄音,去河邊找鬼正卧。 笑死蠢熄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炉旷。 我是一名探鬼主播签孔,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼窘行!你這毒婦竟也來(lái)了饥追?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤罐盔,失蹤者是張志新(化名)和其女友劉穎但绕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捏顺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年六孵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幅骄。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狸臣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昌执,到底是詐尸還是另有隱情,我是刑警寧澤诈泼,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布懂拾,位于F島的核電站,受9級(jí)特大地震影響铐达,放射性物質(zhì)發(fā)生泄漏岖赋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一瓮孙、第九天 我趴在偏房一處隱蔽的房頂上張望唐断。 院中可真熱鬧,春花似錦杭抠、人聲如沸脸甘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丹诀。三九已至,卻和暖如春翁垂,著一層夾襖步出監(jiān)牢的瞬間铆遭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工沿猜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枚荣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓啼肩,卻偏偏與公主長(zhǎng)得像橄妆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祈坠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容