Android中獲取當前位置的使用步驟


在Android中得到當前位置的步驟 1.在AndroidManifest.xml中聲明權限
android.permission.ACCESS_FINE_LOCATION(或者android.permission.ACCESS_COARSE_LOCATION)
2.聲明並實例化一個LocationManager對象 這個類提供了關於獲取位置信息的服務,用於管理Android的定位服務。這個類同意應用定期的更新地理位置信息,同一時候同意當到達指定地點時候激活相關的Intent。
LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
3.聲明並設置Criteria對象。

這個類是用來選擇合適的provider的,他設置了一些條件,通過對這些條件進行篩選。系統得到最優的provider對象。條件有:精度,耗電量。海拔,方位,速度以及付費情況等。

Criteria criteria=new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE); //精度要求:
ACCURACY_FINE(高)ACCURACY_COARSE(低)
criteria.setAltitudeRequired(false); // 不要求海拔信息
criteria.setBearingAccuracy(Criteria.ACCURACY_HIGH); //方位信息的精度要求:
ACCURACY_HIGH(高)ACCURACY_LOW(低)
criteria.setBearingRequired(false); // 不要求方位信息
criteria.setCostAllowed(true); // 是否同意付費
criteria.setPowerRequirement(Criteria.POWER_LOW); // 對電量的要求 (HIGH、MEDIUM)
4.依據criteria的條件獲取最合適的provider。

第二個參數是指是否僅僅返回當前處於激活狀態的provider。

String provider=locMan.getBestProvider(criteria,true);
在這里簡單介紹一下provider。provider是LocationManager獲取位置信息的途徑,經常使用的有兩種:GPS和NETWORK。 GPS定位:更精確,缺點是僅僅能在戶外使用,耗電嚴重,而且返回用戶位置信息的速度遠不能滿足用戶需求。須要在AndroidManifest.xml中聲明權限:
android.permission.ACCESS_FINE_LOCATION
NETWORK定位:通過基站和Wi- Fi信號來獲取位置信息,室內室外均可用。速度更快,耗電更少。須要在AndroidManifest.xml中聲明權限:
android.permission.ACCESS_FINE_LOCATION
或者:android.permission.ACCESS_COARSE_LOCATION
使用locMan.getAllProviders();能夠獲得全部已知provider的list。

為了獲取用戶位置信息,我們能夠使用多種定位方式的當中一個。也能夠同一時候使用多個。

5.設置監聽器 設置有關更新操作的一些條件(時間間隔,距離間隔),監聽器會定期的更新位置信息。這里設置了使用之前得到的最優provider。更新位置操作的時間間隔為1000毫秒,距離間隔為5米,綁定LListener監聽器。

locMan.requestLocationUpdates(provider, 1000, 5, new LListener());
6.獲取地理位置信息 返回provider近期獲得的位置信息。

Location loc = locMan.getLastKnownLocation(provider);
7.補充 如有須要,我們能夠將Location信息轉化為GeoPoint。

函數例如以下

private GeoPoint getGeoByLocation(Location loc){
GeoPoint gp = null;
if(loc != null){
double latitude = loc.getLatitude() * 1E6;
double longitude = loc.getLongitude() * 1E6;
gp = new GeoPoint((int)latitude, (int)longitude);
}
return gp;
}
以上文章轉載自網絡。對於上述信息已得到本地驗證使用,對於綜合使用的實例在 一文中已經實現。請移步查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM