手機(jī)方向傳感器的缺點(diǎn)及解決方法探究
方向傳感器是算法生成的傳感器之一,主要借助于磁場傳感器的數(shù)據(jù)。
Android系統(tǒng)自帶了方向傳感器,不過系統(tǒng)5.0之后方法就被廢除了(我們還是可以使用的,只是谷歌不推薦繼續(xù)使用了)。谷歌提供了一套新的算法來作為替代,運(yùn)用磁場傳感器和加速度傳感器來計(jì)算方向(可自行搜索調(diào)用方法)。
兩種方法之間的優(yōu)劣暫時(shí)無法判定,當(dāng)然我們希望新方法的效果更好。由于沒有具體研究兩個(gè)算法之間的區(qū)別,根據(jù)我個(gè)人使用經(jīng)驗(yàn)來說,效果應(yīng)該差不多。
算法的抗干擾能力很弱
我不是要嘲諷谷歌,而是陳述一個(gè)事實(shí)。我們想象手機(jī)中有一個(gè)小小的指南針,玩過磁鐵的朋友應(yīng)該知道同性相斥、異性相吸,因此這個(gè)小指南針一旦遇到強(qiáng)磁干擾時(shí)就會(huì)失效。這是算法上的一大缺陷,也是難以克服的。而且市面上幾乎所有的手機(jī)傳感器都會(huì)遇到這樣一個(gè)問題,包括蘋果。
手機(jī)、電腦、鐵制品等容易帶磁性的物體,都會(huì)對手機(jī)的方向造成很大的干擾,一般來說保持合適的距離(手機(jī)電腦十五厘米以上,汽車一米以上),干擾就可以忽略不計(jì)。但是在車、電梯或者大型儀器設(shè)備附近及其內(nèi)部,方向傳感器就很難保持穩(wěn)定了。
那么手機(jī)本身呢?手機(jī)本身也可以看作是強(qiáng)磁體,但由于硬件位置是固定的,我們可以把手機(jī)本身看作是靜態(tài)干擾(也就是說干擾是個(gè)穩(wěn)定的值),算出對應(yīng)的值,做個(gè)補(bǔ)償即可(實(shí)際上谷歌的算法中已經(jīng)考慮到這點(diǎn),所以并不需要我們多操心)。
一旦受到強(qiáng)磁干擾,此時(shí)的傳感器在大部分情況下是很難做到自身調(diào)節(jié)并快速恢復(fù)正常的,我們可以拿著手機(jī)進(jìn)行八字形回轉(zhuǎn)來使磁場重新回到正確的值,前提是離開強(qiáng)磁體。
如何克服
合理運(yùn)用手機(jī)的陀螺儀傳感器有一定的可能性能降低磁場干擾,陀螺儀給出的是物體旋轉(zhuǎn)時(shí)的角速度,理想情況下是正好與我們的方向傳感器變化速度(也就是角速度)是一致的,二者相互結(jié)合相互印證,就能在一定程度上判斷磁場是否受到干擾,可以有效降低手機(jī)方向的突變情況。這里提供一種可行的解決思路,具體怎么做,還需要探究。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- Android實(shí)現(xiàn)電子羅盤(指南針)方向傳感器的應(yīng)用
- Android開發(fā)實(shí)現(xiàn)ListView點(diǎn)擊展開收起效果示例
- Android中BroadcastReceiver案例講解
- Android中Fragment的分屏顯示處理橫豎屏顯示的實(shí)現(xiàn)方法
- Android中SoundPool的使用步驟實(shí)例
- Android Studio三方引用報(bào)錯(cuò)但是項(xiàng)目可以運(yùn)行的解決方案
- android 無須root截圖方案的實(shí)現(xiàn)
- Android實(shí)現(xiàn)合并生成分享圖片功能
- Android自定義View實(shí)現(xiàn)課程表表格
- Android判斷json格式將錯(cuò)誤信息提交給服務(wù)器
相關(guān)文章
android之HttpPost&HttpGet使用方法介紹
下文直接講用法,先知道怎么用,再知道怎么回事,具體如下,感興趣的朋友可以參考下哈2013-06-06android BottomSheetDialog新控件解析實(shí)現(xiàn)知乎評(píng)論列表效果(實(shí)例代碼)
BottomSheetDialog是一個(gè)自定義的從底部滑入的對話框,這篇文章主要介紹了android BottomSheetDialog新控件解析實(shí)現(xiàn)知乎評(píng)論列表效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android中ScrollView監(jiān)聽滑動(dòng)距離案例講解
這篇文章主要介紹了Android中ScrollView監(jiān)聽滑動(dòng)距離案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Android編程之播放器MediaPlayer實(shí)現(xiàn)均衡器效果示例
這篇文章主要介紹了Android編程之播放器MediaPlayer實(shí)現(xiàn)均衡器效果,結(jié)合具體實(shí)例形式分析了Android調(diào)用MediaPlayer相關(guān)API構(gòu)造均衡器的具體步驟與相關(guān)功能實(shí)現(xiàn)方法,需要的朋友可以參考下2017-08-08Android實(shí)現(xiàn)后臺(tái)開啟服務(wù)默默拍照功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)后臺(tái)開啟服務(wù)默默拍照功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Android?WebView開發(fā)之自定義WebView工具框
在WebView頁面長按時(shí)會(huì)彈出一個(gè)復(fù)制框,有的時(shí)候里面的item不是我們想要,這個(gè)時(shí)候我們就可以自定義一個(gè)工具框。本文就將介紹如何通過WebView自定義工具框,需要的朋友可以參考一下2021-12-12DrawerLayout的簡單使用及側(cè)滑菜單實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了DrawerLayout的簡單使用及側(cè)滑菜單實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04android實(shí)現(xiàn)點(diǎn)擊圖片全屏展示效果
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)點(diǎn)擊圖片全屏展示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08