av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

解決Android原生定位的坑

瀏覽:4日期:2022-09-20 18:11:40

Android原生定位的代碼網上已經很多了,就不貼出來。

簡單了解下:

GPS_PROVIDER:通過手機內置的GPS芯片,利用衛星獲取定位信息。位置監聽、衛星狀態監聽很耗電且室內定位很不準確。

NETWORK_PROVIDER:網絡定位通過基站和WiFi節點,利用節點id在定位數據服務器查詢位置信息。但是國內網絡不允許,且有消息稱Google已不提供該服務。so網上出現的此種方式獲取定位信息不可用,也就是說NETWORK_PROVIDER在國內不可用。

PASSIVE_PROVIDER:被動定位,其他應用比如百度、高德等使用了定位,系統會更新定位信息并保存下來,通過此方式可以獲取最近一次的位置信息。

第三方SDK當然好用了,但是要注意獲取的經緯度是經過了偏移的,只適配自己的地圖。比如用百度地圖SDK獲取的經緯度在百度地圖上是準確的,在高德地圖上顯示可能就會有一定的偏差。如果經緯度和地圖不是成套使用就要考慮偏移的情況,而不是獲取的經緯度不準確。第三方SDK都有自己的網絡定位數據,他們的網絡定位不僅僅是依靠服務器查詢,還有一套算法支撐,所以室內定位比較準確。

有些項目不使用第三方SDK,只能用原生方法獲取定位。NETWORK_PROVIDER 被迫放棄,PASSIVE_PROVIDER 只能是輔助,GPS_PROVIDER 需要增加精度。

我是這么處理的:

1. addGpsStatusListener 監聽衛星狀態,當信號值 > 1 的衛星數量在4顆以上,才可以使用 GPS_PROVIDER;

解決Android原生定位的坑

2. 速度>0.5 且 精度 < 50 才會被認為是有效的經緯度數據(我的項目中設備是移動的)。

補充:使用Android自帶api定位失敗的原因

前奏:使用高德百度等定位,集成那么麻煩。為何不使用android自帶的api進行定位。省時省力?

1.使用自帶定位很簡單,如下圖

解決Android原生定位的坑

2.繼承LocationListener

解決Android原生定位的坑

3.如果獲取到就解析數據

解決Android原生定位的坑

但是,問題來了。

位置提供者就兩種方式,要么network,要么gps.

解決Android原生定位的坑

問題:

1.使用gps,收不到任何回調。

2.使用network,一直回調onProviderDisabled

原因:那就是當你在室內開發時,你的手機根本就沒法獲取位置信息,你叫系統如何將位置信息通知給你的程序。

所以要從根本上解決這個問題,就要解決位置信息獲取問題。

剛剛也提到了,只有NETWORK_PROVIDER這種模式才是室內定位可靠的方式,只不過由于大陸的怪怪網絡,且大部分廠商也不會用google的服務,這種定位方式默認是沒法用的。

那怎么辦?好辦,找個替代的服務商就可以了,百度的位置信息sdk就可以解決這個問題。

它的基本原理在上面已經提到過了,就是搜集你的wifi節點信息和你的手機基站信息來定位。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Android
相關文章:
主站蜘蛛池模板: 中文字幕一区在线观看视频 | 亚洲国产成人精品女人 | 精品视频国产 | 在线观看国产视频 | 免费一看一级毛片 | 久久美女网 | 国产精品久久久久久久久久免费 | 一级高清 | 久久精品国产一区二区三区 | 欧美日韩在线观看一区 | 性做久久久久久免费观看欧美 | 日韩在线视频免费观看 | h视频免费观看 | 伊人春色成人 | 黄色免费在线观看网站 | 欧美人人 | 99精品久久 | 免费观看色 | 成人福利网站 | 一区二区三区四区毛片 | 欧美精品成人一区二区三区四区 | 精品中文字幕久久 | 免费h在线 | 亚洲欧洲精品在线 | 夜夜夜夜夜夜曰天天天 | 国产线视频精品免费观看视频 | 久久毛片网站 | 国产欧美一区二区三区国产幕精品 | 亚洲国产欧美日韩 | 先锋资源亚洲 | 欧美精品一区二区三区在线 | 国产精品久久久久永久免费观看 | 免费麻豆视频 | 亚洲精品视频一区 | 国产亚洲精品久久久久久牛牛 | 午夜视频大全 | 久久久精品亚洲 | 久久久一| 乳色吐息在线观看 | 色黄爽 | 狠狠久|