private LocationManager locationManager;
private LocationListener locationListener;
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// 在这里更新地图位置
}
...
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
如果使用实际设备测试应用程序,请确保在设置中启用位置服务。如果设备的GPS信号不好,则更新可能会延迟。为了在实际设备上测试,您可以尝试用最基本的方式检查位置更新。例如,在您的活动中添加以下方法:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (lastKnownLocation != null) {
// 更新地图位置
}
这将显示设备当前位置的最后已知位置。如果它正确,那么就意味着设备正在定位并更新位置。