Android中的位置管理员和速度?

时间:2011-03-24 14:36:34

标签: android

在我的应用程序中,我使用位置管理器来获取经度和纬度。但是,将“连接”漫游到地图位置时,不会立即与最近的位置“连接”。有时它在工作之前最多需要重启五次。其他时候需要更多。

这是我正在做的事情,

LocationManager locationManager;              
String context = Context.LOCATION_SERVICE;         
locationManager = (LocationManager)getSystemService(context);     
String provider = LocationManager.GPS_PROVIDER;      

Location location =locationManager.getLastKnownLocation(provider);          
updateWithNewLocation(location);               

myLocationManager = (LocationManager)getSystemService(
                        Context.LOCATION_SERVICE);

myLocationListener = new MyLocationListener();

myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,myLocationListener);

在onLocationChanged

double Lat = argLocation.getLatitude();         
double Long = argLocation.getLongitude();      

Longitude = Double.toString(Long);         
Latitude = Double.toString(Lat);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我注意到你正在使用GPS提供商,在某些情况下需要更长时间才能找到自己。我建议使用网络提供商的初始位置:

Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

我用这个初始值得到了相当精确的结果,它是一个很好的起点,同时用户继续使用应用程序,同时在后台进程中可以获得更好的结果。 This guide提供了一些有用的最佳做法。