移動 是手機與手持設備的最大特點,可以通過Eclipse的DDMS視圖,模擬設備的位置變化,改變經緯度后,點擊send,然后運行程序,在應用程序中,動態的獲取設備位置,然后顯示當前的位置信息。
獲取位置信息分為三步:
1. 添加系統權限,來支持對LBS硬件的訪問
< uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
< /uses-permission>
2. 得到系統服務 的LocationManager 對象
LocationManager loctionManager;
String contextService=Context.LOCATION_SERVICE;
//通過系統服務,取得LocationManager對象
loctionManager=(LocationManager) getSystemService(contextService);
3. 得到位置提供器,通過位置提供器,得到位置信息,可以指定具體的位置提供器,也可以提供一個標准集合,讓系統根據 標准匹配最適合的位置提供器,位置信息是由位置提供其提供的。
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中,如圖:

監聽位置的變化
//監聽位置變化,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顯示的位置信息



