Arc*_*rci 1 android location google-maps
我在我的应用程序上使用LocationListener.但是,每当我的位置更改或onLocationChanged(位置位置)方法执行时,我的位置的坐标根本不会改变.我骑在一辆车内,已经行驶了几米到几公里,而且我的位置没有改变.可能是什么问题呢?
我的代码:
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
String bestProvider = locationManager.getBestProvider(new Criteria(), true);
{LocationListener locationListener = new LocationListener()
{
public void onLocationChanged(Location location)
{
//location.getLatitude(), location.getLongtitude()
//location coordinates does not change at all everytime onLocationChanged is called even after I already move several meters or kilometers.
}
//...
}
locationManager.requestLocationUpdates(bestProvider, 0, 0, locationListener);
Run Code Online (Sandbox Code Playgroud)
试试这个
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
locationListener);
Run Code Online (Sandbox Code Playgroud)
您可能正在使用网络提供商.通常在激活onPause中删除侦听器.您可以在活动的onResume事件中设置侦听器.
我不确定Android找到最好的提供商背后的逻辑是什么.但与网络提供商相比,GPS始终被认为是最准确的.但是有些情况下无法通过GPS获取位置锁定.那是网络提供商投入使用的时候.
我通常会创建一个简单的类来调用函数来获取位置坐标.在功能内部,我首先使用GPS请求位置.我等待30秒的位置,如果没有收到,那么我使用网络提供商请求它.通过这种方式,我可以始终确保将GPS值作为我的首选.
| 归档时间: |
|
| 查看次数: |
4517 次 |
| 最近记录: |