91视频在线免费观看-日韩在线视频一区-9.1成人免费看片-好色艳妇小说-久热精品在线观看-日本欧美精品-肉大捧一进一出免费视频-91成年人视频-国产黄片一区二区三区-亚洲色图欧美视频-激情图片在线视频-蜜臀av无码精品人妻色欲-欧美午夜在线视频-喷潮在线-色女人网站-日本大片黄-成人精品三级-亚洲综合性-免费成人福利视频-欧美性俱乐部

咨詢熱線:0755 - 2708 7827 瀏覽新版官網(wǎng)
首頁 / 新聞資訊 / 非常規(guī)系統(tǒng)中進(jìn)行GPS開發(fā)注意事項(xiàng)

非常規(guī)系統(tǒng)中進(jìn)行GPS開發(fā)注意事項(xiàng)

在Android中進(jìn)行GPS開發(fā),需要涉及LocationManager、LocationProvider、Location三個(gè)類。LocationManager類的作用與TelephonyManager、AudioManager等服務(wù)類的作用相似,所有GPS定位相關(guān)的服務(wù)、對(duì)象都將由該對(duì)象來產(chǎn)生。與程序中獲取TelephonyManager、AudioManager的方法相似 ,程序中獲取LocationManager的實(shí)例是通過調(diào)用Context的getSystemService()方法來獲取,LocationManager lm = getSystemService(Context.LOCATION_SERVICE);一旦在程序中獲得了LocationManager對(duì)象之后接下來即可調(diào)用LocationManager的方法來獲取GPS定位的相關(guān)服務(wù)和對(duì)象。定位提供者LocationProvider是GPS定位組件的抽象表示,Android的定位信息就是由它提供的,即,通過LocationProvider類的方法可以獲取定位組件的相關(guān)信息。

Location是位置信息的抽象類,它提供了大量用來獲取定位信息的方法。

上面三個(gè)類就是Android GPS定位器支持的三個(gè)核心API,使用它們獲取GPS定位信息的通用步驟為:

(1) 獲取系統(tǒng)的LocationManager對(duì)象。

(2) 使用LocationManager,通過指定LocationProvider來獲取定位信息,定位信息由Location對(duì)象來表示。

(3) 從Location對(duì)象中獲取定位信息。


當(dāng)前模擬器所有可用的LocationProvider有如下三個(gè):

? network:由LocationManager.NETWORK_PROVIDER常量表示,它代表通過無線信號(hào)基站或Wi-fi網(wǎng)絡(luò)獲取定位信息的LocationProvider對(duì)象。

? passive:由LocationManager.PASSIVE_PROVIDER常量表示。

? gps:由LocationManager.GPS_PROVIDER常量表示,它代表通過GPS衛(wèi)星獲取定位信息的LocationProvider對(duì)象。

LocationManager類提供了訪問定位服務(wù)的功能,該類提供了如下常用的方法。

? boolean  addGpsStatusListener(GpsStatus.Listener listener)添加一個(gè)監(jiān)聽GPS狀態(tài)的監(jiān)聽器。

? void  addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent)設(shè)置當(dāng)臨近某指定位置(經(jīng)度,緯度)和半徑的位置時(shí)的警告信息。

? List<String>  getAllProviders()獲取所有的LocationProvider列表。

? String  getBestProvider(Criteria criteria, boolean enabledOnly)根據(jù)指定條件返回最優(yōu)的LocationProvider對(duì)象。

? GpsStatus  getGpsStatus(GpsStatus status)獲取GPS狀態(tài)。

? Location  getLastKnownLocation(String provider)根據(jù)LocationProvider獲取最近一次已知的Location。

? LocationProvider  getProvider(String name)根據(jù)名稱來獲取LocationProvider。

? List<String>  getProviders(Criteria criteria, boolean enabledOnly)根據(jù)指定條件獲取滿足該條件的全部LocationProvider的名稱。

? List<String>  getProviders(boolean enabledOnly)獲取所有可用的LocationProvider。

? boolean  isProviderEnabled(String provider)判斷指定名稱的LocationProvider是否可用。

? void  removeGpsStatusListener(GpsStatus.Listener listener)刪除GPS狀態(tài)監(jiān)聽器。

? void  removeProximityAlert(PendingIntent intent)刪除一個(gè)臨近警告。

? void  requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent)通過指定的LocationProvider周期性地獲取定位信息,并通過intent啟動(dòng)相應(yīng)的組件。

? void  requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)


通過指定的LocationProvider周期性地獲取定位信息,并觸發(fā)Listener所對(duì)應(yīng)的觸發(fā)器

我們通過調(diào)用LocationManager的getAllProviders方法獲取所有LocationProvider時(shí)返回的是List<String>集合,集合元素即為L(zhǎng)ocationProvider的名稱。我們還可以借助于LocationManager的getProvider(String name)方法,獲取指定名稱的LocationProvider對(duì)象。


但大部分時(shí)候,應(yīng)用程序可能希望得到符合指定條件的LocationProvider,這就需要借助于LocationManager的getBestProvider(Criteria criteria,boolean enabledOniy)方法來獲取。除了利用LocationManager類來獲取LocationProvider外,我們還可以借助Criteria類來獲取符合指定條件的LocationProvider。Criteria提供如下常用的方法來設(shè)置條件。


? void  setAccuracy(int accuracy)設(shè)置對(duì)LocationProvider的精度要求。

? void  setAltitudeRequired(boolean altitudeRequired)設(shè)置要求LocationProvider能提供高度信息。

? void  setBearingRequired(boolean bearingRequired)設(shè)置要求LocationProvider能提供方向信息。

? void  setCostAllowed(boolean costAllowed)設(shè)置要求LocationProvider是否免費(fèi)。

? void  setPowerRequirement(int level)設(shè)置要求LocationProvider的耗電量。


轉(zhuǎn)自:互聯(lián)網(wǎng)


聲明:以上內(nèi)容來源于互聯(lián)網(wǎng),如有侵權(quán)請(qǐng)聯(lián)系刪除,出于分享信息及學(xué)習(xí)之目的,不代表本網(wǎng)站的觀點(diǎn)、本站不對(duì)其真實(shí)性負(fù)責(zé)。