由于位置信息是时刻变化的,如果要获取最新的位置信息,就要监听位置的变化。如果 google的导航软件,车载导航等。根据google map 获取的位置信息是有偏差的,如果需要精确的定位,需要付费获取偏移算法。网上也有其它的纠偏方法,有兴趣的可以尝试下。
1. 获取 LocationManager
2. 实现 LocationListener
3. 注册 requestLocationUpdates
实例
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
/*
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
minTime 上报时间间隔 单位毫秒
minDistance 距离间隔 单位米
*/
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
LocationListener locationListener = new LocationListener()
{
@Override
public void onLocationChanged(Location location)
{
tv.setText("当前维度:"+location.getLatitude()+" 经度信息: "+location.getLongitude());
}
@Override
public void onProviderDisabled(String provider)
{
}
@Override
public void onProviderEnabled(String provider)
{
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
{
}
};
添加权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
1. 获取 LocationManager
2. 实现 LocationListener
3. 注册 requestLocationUpdates
实例
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
/*
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
minTime 上报时间间隔 单位毫秒
minDistance 距离间隔 单位米
*/
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
LocationListener locationListener = new LocationListener()
{
@Override
public void onLocationChanged(Location location)
{
tv.setText("当前维度:"+location.getLatitude()+" 经度信息: "+location.getLongitude());
}
@Override
public void onProviderDisabled(String provider)
{
}
@Override
public void onProviderEnabled(String provider)
{
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
{
}
};
添加权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />