我正在我的Fragment类中实现LocationListener并使用以下代码来跟踪位置更新,尽管它没有得到应有的频繁更新。我需要在Google地图上显示用户在Google Navigator上的位置。
找到最佳提供者
mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
// if I uncomment the next line, it takes too long to get the location
// criteria.setAccuracy(Criteria.ACCURACY_FINE);
// if I leave the line above commented, the app seems to receiving location from triangulation
mProvider = mLocationManager.getBestProvider(criteria, false);
Location location = mLocationManager.getLastKnowLocation(mProvider);
LocationChanged事件
@Override
public void onLocationChanged(Location location) {
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
setMapCameraPosition(latLng);
}
答案 0 :(得分:1)
您只询问最后的已知位置,可能存在也可能不存在。要使用LocationListener,您必须调用其中一个requestLocationUpdates()
方法。
mLocationManager.requestLocationUpdates(mProvider, 0, 0, mLocationListener);