手機(jī)方向傳感器的缺點(diǎn)及解決方法探究
方向傳感器是算法生成的傳感器之一,主要借助于磁場(chǎng)傳感器的數(shù)據(jù)。
Android系統(tǒng)自帶了方向傳感器,不過(guò)系統(tǒng)5.0之后方法就被廢除了(我們還是可以使用的,只是谷歌不推薦繼續(xù)使用了)。谷歌提供了一套新的算法來(lái)作為替代,運(yùn)用磁場(chǎng)傳感器和加速度傳感器來(lái)計(jì)算方向(可自行搜索調(diào)用方法)。
兩種方法之間的優(yōu)劣暫時(shí)無(wú)法判定,當(dāng)然我們希望新方法的效果更好。由于沒(méi)有具體研究?jī)蓚€(gè)算法之間的區(qū)別,根據(jù)我個(gè)人使用經(jīng)驗(yàn)來(lái)說(shuō),效果應(yīng)該差不多。
算法的抗干擾能力很弱
我不是要嘲諷谷歌,而是陳述一個(gè)事實(shí)。我們想象手機(jī)中有一個(gè)小小的指南針,玩過(guò)磁鐵的朋友應(yīng)該知道同性相斥、異性相吸,因此這個(gè)小指南針一旦遇到強(qiáng)磁干擾時(shí)就會(huì)失效。這是算法上的一大缺陷,也是難以克服的。而且市面上幾乎所有的手機(jī)傳感器都會(huì)遇到這樣一個(gè)問(wèn)題,包括蘋(píng)果。
手機(jī)、電腦、鐵制品等容易帶磁性的物體,都會(huì)對(duì)手機(jī)的方向造成很大的干擾,一般來(lái)說(shuō)保持合適的距離(手機(jī)電腦十五厘米以上,汽車一米以上),干擾就可以忽略不計(jì)。但是在車、電梯或者大型儀器設(shè)備附近及其內(nèi)部,方向傳感器就很難保持穩(wěn)定了。
那么手機(jī)本身呢?手機(jī)本身也可以看作是強(qiáng)磁體,但由于硬件位置是固定的,我們可以把手機(jī)本身看作是靜態(tài)干擾(也就是說(shuō)干擾是個(gè)穩(wěn)定的值),算出對(duì)應(yīng)的值,做個(gè)補(bǔ)償即可(實(shí)際上谷歌的算法中已經(jīng)考慮到這點(diǎn),所以并不需要我們多操心)。
一旦受到強(qiáng)磁干擾,此時(shí)的傳感器在大部分情況下是很難做到自身調(diào)節(jié)并快速恢復(fù)正常的,我們可以拿著手機(jī)進(jìn)行八字形回轉(zhuǎn)來(lái)使磁場(chǎng)重新回到正確的值,前提是離開(kāi)強(qiáng)磁體。
如何克服
合理運(yùn)用手機(jī)的陀螺儀傳感器有一定的可能性能降低磁場(chǎng)干擾,陀螺儀給出的是物體旋轉(zhuǎn)時(shí)的角速度,理想情況下是正好與我們的方向傳感器變化速度(也就是角速度)是一致的,二者相互結(jié)合相互印證,就能在一定程度上判斷磁場(chǎng)是否受到干擾,可以有效降低手機(jī)方向的突變情況。這里提供一種可行的解決思路,具體怎么做,還需要探究。


總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Android實(shí)現(xiàn)電子羅盤(pán)(指南針)方向傳感器的應(yīng)用
- Android開(kāi)發(fā)實(shí)現(xiàn)ListView點(diǎn)擊展開(kāi)收起效果示例
- Android中BroadcastReceiver案例講解
- Android中Fragment的分屏顯示處理橫豎屏顯示的實(shí)現(xiàn)方法
- Android中SoundPool的使用步驟實(shí)例
- Android Studio三方引用報(bào)錯(cuò)但是項(xiàng)目可以運(yùn)行的解決方案
- android 無(wú)須root截圖方案的實(shí)現(xiàn)
- Android實(shí)現(xiàn)合并生成分享圖片功能
- Android自定義View實(shí)現(xiàn)課程表表格
- Android判斷json格式將錯(cuò)誤信息提交給服務(wù)器
相關(guān)文章
Android自定義TextView實(shí)現(xiàn)文字傾斜效果
有時(shí)候Android自帶的控件無(wú)法滿足我們的某些要求,這時(shí)就需要我們自定義控件來(lái)實(shí)現(xiàn)這些功能。比如在實(shí)際開(kāi)發(fā)應(yīng)用中,我們有時(shí)需要將TextView的文字傾斜一定的角度,就需要自定義TextView。下面這篇文章就給大家介紹了利用Android TextView如何實(shí)現(xiàn)文字傾斜效果。2016-11-11
Android重復(fù)引用多個(gè)場(chǎng)景報(bào)錯(cuò)的問(wèn)題解決
本文主要介紹了Android重復(fù)引用多個(gè)場(chǎng)景報(bào)錯(cuò)的問(wèn)題解決,主要介紹了5種情況,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Android中應(yīng)用界面主題Theme使用方法和頁(yè)面定時(shí)跳轉(zhuǎn)應(yīng)用
在Android SDK中內(nèi)置了下面的Theme,可以按標(biāo)題欄Title Bar和狀態(tài)欄Status Bar是否可見(jiàn)來(lái)分類,感興趣的朋友可以了解下哈2013-06-06
詳解Android應(yīng)用中使用TabHost組件進(jìn)行布局的基本方法
這篇文章主要介紹了Android應(yīng)用中使用TabHost組件進(jìn)行布局的基本方法,不繼承TabActivity并以最基本的布局文件方式進(jìn)行布局,需要的朋友可以參考下2016-04-04
詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配
由于各系統(tǒng)版本的限制,沉浸式狀態(tài)欄對(duì)系統(tǒng)有要求,本篇文章主要介紹了詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-05-05
Android 實(shí)現(xiàn)ViewPager邊界回彈效果實(shí)例代碼
這篇文章主要介紹了Android 實(shí)現(xiàn)ViewPager邊界回彈效果的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05
Android實(shí)現(xiàn)標(biāo)題顯示隱藏功能
這篇文章主要介紹了Android實(shí)現(xiàn)標(biāo)題顯示隱藏功能2016-02-02

