国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
LocationManager
Android中LocationManager的提供了一系列方法來地理位置相關(guān)的問題,包括查詢上一個已知位置;注冊/注銷來自某個 LocationProvider的周期性的位置更新;以及注冊/注銷接近某個坐標(biāo)時對一個已定義Intent的觸發(fā)等。今天我們就來看看Android 中LocatinManager的簡單使用,以獲取當(dāng)前所在的位置為例。

首先,我們需要獲取LocationManager的一個實例,這里需要注意的是他的實例只能通過下面這種方式來獲取,直接實例化LocationManager是不被允許的。

Java代碼
  1. LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);  


得到了LocationManager的實例locatonManager以后,我們通過下面的語句來注冊一個周期性的位置更新。
Java代碼
  1. locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,  
  2.  10000, locationListener);  


這句代碼告訴系統(tǒng),我們需要從GPS獲取位置信息,并且是每隔1000ms更新一次,并且不考慮位置的變化。最后一個參數(shù)是LocationListener的一個引用,我們必須要實現(xiàn)這個類。

Java代碼
  1. private final LocationListener locationListener = new LocationListener() {  
  2.     public void onLocationChanged(Location location) { //當(dāng)坐標(biāo)改變時觸發(fā)此函數(shù),如果Provider傳進(jìn)相同的坐標(biāo),它就不會被觸發(fā)  
  3.         // log it when the location changes  
  4.         if (location != null) {  
  5.             Log.i("SuperMap""Location changed : Lat: "  
  6.               + location.getLatitude() + " Lng: "  
  7.               + location.getLongitude());  
  8.         }  
  9.     }  
  10.   
  11.     public void onProviderDisabled(String provider) {  
  12.     // Provider被disable時觸發(fā)此函數(shù),比如GPS被關(guān)閉  
  13.     }  
  14.   
  15.     public void onProviderEnabled(String provider) {  
  16.     //  Provider被enable時觸發(fā)此函數(shù),比如GPS被打開  
  17.     }  
  18.   
  19.     public void onStatusChanged(String provider, int status, Bundle extras) {  
  20.     // Provider的轉(zhuǎn)態(tài)在可用、暫時不可用和無服務(wù)三個狀態(tài)直接切換時觸發(fā)此函數(shù)  
  21.     }  
  22. };  


以上的這些步驟一般應(yīng)當(dāng)在Activity的onCreate()階段完成。

在成功注冊了一個周期性坐標(biāo)更新以后,我們就隨時可以通過下面的方法來取得當(dāng)前的坐標(biāo)了。
Java代碼
  1. Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);  
  2. double latitude = location.getLatitude();     //經(jīng)度  
  3. double longitude = location.getLongitude(); //緯度  
  4. double altitude =  location.getAltitude();     //海拔  


不過這時候,如果你嘗試去運行這個LocationSample的話程序啟動時多半就會報錯,因為我們沒有設(shè)置GPS相關(guān)的權(quán)限,解決方法也相當(dāng) 簡單,在AndroidManifest.xml中的block里添加下面這句即可解決權(quán)限的問題。詳細(xì)的權(quán)限設(shè)置,請參考官方文檔 docs/reference/android/Manifest.permission.html
Java代碼
  1. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  


如果是在模擬器中調(diào)試的話,我們有兩種方法來設(shè)置一個模擬的坐標(biāo)值,第一種是通過DDMS,我們可以在eclipse的ADT插件中使用這種方 法,只要打開"Window" --> "Show View" 中打開"Emulator Control" View即可看到如下的設(shè)置窗口,我們可以手動,或者通過KML和GPX文件來設(shè)置一個坐標(biāo)。

另一種方法是使用geo命令,我們需要telnet到本機的5554端口,然后在命令行下輸入類似于 geo fix -121.45356 46.51119 4392 這樣的命令,后面三個參數(shù)分別代表了經(jīng)度、緯度和(可選的)海拔。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
android手機定位不準(zhǔn)的問題
Android 獲取GPS定位信息
Android 打開 GPS 導(dǎo)航并獲取位置信息 - 創(chuàng)世軟件團隊 - 博客園
Android Location在GPS中的應(yīng)用(一)
Android GPS定位 獲取經(jīng)緯度
(轉(zhuǎn))Android:原生的手機獲取經(jīng)緯度得到當(dāng)前位置
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服