獲取位置信息分爲三步:
1. [size=medium]添加系統權限,來支持對LBS硬件的訪問[/size]
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
</uses-permission>
2. [size=medium]得到系統服務 的LocationManager 對象 [/size]
LocationManager loctionManager;
String contextService=Context.LOCATION_SERVICE;
//通過系統服務,取得LocationManager對象
loctionManager=(LocationManager) getSystemService(contextService);
3. [size=medium]得到位置提供器,通過位置提供器,得到位置信息[/size],可以指定具體的位置提供器,也可以提供一個標準集合,讓系統根據 標準匹配最適合的位置提供器,位置信息是由位置提供其提供的。
a. 通過GPS位置提供器獲得位置(指定具體的位置提供器)
String provider=LocationManager.GPS_PROVIDER;
Location location = loctionManager.getLastKnownLocation(provider);
b. 使用標準集合,讓系統自動選擇可用的最佳位置提供器,提供位置
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度
criteria.setAltitudeRequired(false);//不要求海拔
criteria.setBearingRequired(false);//不要求方位
criteria.setCostAllowed(true);//允許有花費
criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗
//從可用的位置提供器中,匹配以上標準的最佳提供器
String provider = loctionManager.getBestProvider(criteria, true);
//獲得最後一次變化的位置
Location location = loctionManager.getLastKnownLocation(provider);
最後將位置信息顯示在TextView中,如圖:
[img]http://dl.iteye.com/upload/attachment/376079/d68487b1-6b47-363a-a2ba-d83bb6842f81.png[/img]
[size=medium]監聽位置的變化[/size]
//監聽位置變化,2秒一次,距離10米以上
loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);
//位置監聽器
private final LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
//當位置變化時觸發
@Override
public void onLocationChanged(Location location) {
//使用新的location更新TextView顯示
updateWithNewLocation(location);
}
};
通過改變位置經緯度,程序會自動更新TextView顯示的位置信息
[img]http://dl.iteye.com/upload/attachment/376081/65d2a3aa-6760-302e-836a-ccdb2861fd84.png[/img][img]http://dl.iteye.com/upload/attachment/376079/d68487b1-6b47-363a-a2ba-d83bb6842f81.png[/img][img]http://dl.iteye.com/upload/attachment/376083/acd17591-6966-3f27-b018-482a39b348fb.png[/img][img]http://dl.iteye.com/upload/attachment/376085/7db2fd05-d550-3ec6-b186-d4469771ff92.png[/img]