LocationManager提供了一系列的方法来获取地理位置相关的信息,查询上一个已知的位置,更新位置。
简单使用:
添加权限:
第一种:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
与之相对应的位置更新代码为:
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 5*1000, 0, locationListener);
第二种:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
与之对应的位置更新代码为:
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(locationManager.NETWORK_PROVIDER, 5*1000, 0, locationListener);
// 在Activity的onCreate()中添加
LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(LOCATION_SERVICE);
// 每隔5秒更新一次位置信息
locationManager.requestLocationUpdates(locationManager.NETWORK_PROVIDER, 5*1000, 0, new LocationListener() {
// Provider有三个状态:可用、暂时不可用、无服务,在状态切换时触发
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
// Provider 被Enable时触发
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
// Provider 被Disabled时触发
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
// 获取地理位置信息
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
double lat = location.getLatitude(); // 经度
double lng = location.getLongitude();// 纬度
double alt = location.getAltitude(); // 海拔
float acc = location.getAccuracy(); // 精度
long time= location.getTime();
//...
System.out.println("经度:"+lat);
System.out.println("纬度:"+lng);
}
});