1. 程式人生 > >Android中獲取當前位置的使用步驟

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;
}
以上文章轉載自網路,對於上述資訊已得到本地驗證使用,對於綜合使用的例項在 一文中已經實現,請移步檢視。