Android 定位系統(tǒng)(GPS)開發(fā)詳解
全球定位系統(tǒng)(Global Positioning System,GPS),是一個(gè)中距離圓型軌道衛(wèi)星導(dǎo)航系統(tǒng),可以為地球表面的絕大部分地區(qū)(98%)提供準(zhǔn)確的定位、測(cè)速和高精準(zhǔn)的時(shí)間標(biāo)準(zhǔn)。GPS廣泛運(yùn)用于軍事、物流、地理、移動(dòng)電話、數(shù)碼相機(jī)、航空領(lǐng)域等,具有非常強(qiáng)大的功能。
Android支持地理定位服務(wù)的API。該地理定位服務(wù)可以用來獲取當(dāng)前設(shè)備的地理位置,應(yīng)用程序可以定時(shí)請(qǐng)求更新設(shè)備當(dāng)前的地理位置信息。比如應(yīng)用程序可以借助一個(gè)Intent接收器來實(shí)現(xiàn)如下功能:
以經(jīng)緯度和半徑規(guī)劃一個(gè)區(qū)域,當(dāng)設(shè)備進(jìn)入給區(qū)域,發(fā)出提醒信息,還可以和Google Map API一起使用,完成更多的任務(wù)。
關(guān)于地理定位系統(tǒng)的API全部位于android.location包內(nèi),其中包括以下幾個(gè)重要的功能類:
LocationManager:
本類提供訪問定位服務(wù)的功能,也提供獲取最佳定位提供者的功能。另外,臨近警報(bào)功能也可以借助該類來實(shí)現(xiàn)。
LocationProvide:
該類是定位提供者的抽象類。定位提供者具備周期性報(bào)告設(shè)備地理位置的功能。
LocationListener:
提供地位信息發(fā)生改變時(shí)的回調(diào)功能。必須事先在定位管理器中注冊(cè)監(jiān)聽器對(duì)象。
Criteria:
該類使得應(yīng)用能夠通過在LocationProvider中設(shè)置的屬性來選擇合適的定位提供者。
Geocoder:
用處理地理編碼和反向地理編碼的類。地理編碼是指將地址或者其他描述轉(zhuǎn)變?yōu)榻?jīng)度和緯度,反向地理編碼是將經(jīng)度和緯度轉(zhuǎn)變?yōu)榈刂坊蛎枋稣Z言,其中包含了兩個(gè)構(gòu)造 函數(shù),需要傳入經(jīng)度和緯度的坐標(biāo)。getFromLocation方法可以得到一組關(guān)于地址的數(shù)組。
要使用地理定位,首先需要取得LocationManager的實(shí)例,在Android中,獲取LocationManager的唯一方法就是通過getSystemService()方法的調(diào)用。通過使用LocationManager,我們也可以獲得一個(gè)位置提供者的列表。在一個(gè)真實(shí)的手持設(shè)備中,這個(gè)列表包含了一些GPS服務(wù)。我盟也可以選擇更強(qiáng)大、更精準(zhǔn)、不帶其他附件服務(wù)的GPS。代碼如下:
locationManager.requestLocationUpdate(LocationManager.GPS_PROVIDER,1000,0,locationManager);
取得LocationManager對(duì)象后,我們還需要注冊(cè)一個(gè)周期性的更新視圖,代碼如下:
locationManager.requestLocationUpdate(LocationManager.GPS_PROVIDER,1000,0,locationManager);
其中第一個(gè)參數(shù)是設(shè)置服務(wù)提供者,第二個(gè)參數(shù)是周期,這里需要特別說明一下最后一個(gè)參數(shù)locationManager,它用來監(jiān)聽定位信息的改變,所以我們必須實(shí)現(xiàn)以下幾個(gè)方法:
onLocationChanged(Location location):
當(dāng)坐標(biāo)改變時(shí)觸發(fā)次函數(shù),如果Provider傳進(jìn)相同的坐標(biāo),它就不會(huì)觸發(fā)。
onProviderDisabled(String provider):
Provider禁用時(shí)觸發(fā)此函數(shù),如GPS被關(guān)閉。
onProviderEnabled(Sting provider):
Provider啟用是觸發(fā)此函數(shù),如GPS被打開。
onStatusChanged(String provider, int status, Bundle extras):
Provider的狀態(tài)在可用、暫時(shí)不可用和無服務(wù)三個(gè)狀態(tài)直接切換時(shí)觸發(fā)此函數(shù)。
以上就是對(duì)Android GPS 做的資料整理,有需要的朋友可以參考下。
- Android打開GPS導(dǎo)航并獲取位置信息返回null解決方案
- Android GPS定位測(cè)試(附效果圖和示例)
- Android實(shí)現(xiàn)GPS定位代碼實(shí)例
- android通過gps獲取定位的位置數(shù)據(jù)和gps經(jīng)緯度
- android手機(jī)獲取gps和基站的經(jīng)緯度地址實(shí)現(xiàn)代碼
- Android中GPS定位的用法實(shí)例
- Android中實(shí)現(xiàn)GPS定位的簡單例子
- Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法
- Android編程獲取GPS數(shù)據(jù)的方法詳解
- python獲取android設(shè)備的GPS信息腳本分享
- Android GPS定位詳解及實(shí)例代碼
- Android編程實(shí)現(xiàn)GPS位置獲取的方法
相關(guān)文章
Android轉(zhuǎn)場效果實(shí)現(xiàn)示例淺析
這篇文章主要為大家介紹了Android轉(zhuǎn)場效果實(shí)現(xiàn)示例淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android組件ContextMenu實(shí)現(xiàn)長按事件
這篇文章主要為大家詳細(xì)介紹了Android組件ContextMenu實(shí)現(xiàn)長按事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Android中關(guān)于遞歸和二分法的算法實(shí)例代碼
這篇文章主要介紹了Android中關(guān)于遞歸和二分法的算法實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10Android 狀態(tài)欄虛擬導(dǎo)航鍵透明效果的實(shí)現(xiàn)方法
這篇文章主要介紹了Android 狀態(tài)欄虛擬導(dǎo)航鍵透明效果的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Android DynamicGrid實(shí)現(xiàn)拖曳交換位置功能
這篇文章主要為大家詳細(xì)介紹了Android DynamicGrid實(shí)現(xiàn)拖曳交換位置功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Android 實(shí)現(xiàn)左滑出現(xiàn)刪除選項(xiàng)
滑動(dòng)刪除的部分主要包含兩個(gè)部分, 一個(gè)是內(nèi)容區(qū)域(用于放置正常顯示的view),另一個(gè)是操作區(qū)域(用于放置刪除按鈕)。下面通過本文給大家介紹Android 實(shí)現(xiàn)左滑出現(xiàn)刪除選項(xiàng),需要的朋友可以參考下2017-06-06