在我的Android应用程序中,我使用的是osmdroid框架。在框架中我使用MyLocationNewOverlay(),其中包含一个显示地图上当前位置的方法。
我的问题
框架中的LocationListener似乎没有使用网络提供商,只想找到我的GPS(工作正常,但只有我在外面)。
如果gps不可用,是否有标准方法可以使用也可以与网络提供商配合使用的LocationProvider?
的AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
初始化我的位置叠加层非常标准:
private void initMyLocationNewOverlay() {
myLocationNewOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(context), mapView);
myLocationNewOverlay.enableMyLocation();
mapView.getOverlays().add(myLocationNewOverlay);
}
提前致谢!
答案 0 :(得分:3)
问题是GpsMyLocationProvider只将GPS_Provider添加到其源(您可以在构造函数中看到)。要添加网络提供商,请使用addLocationSource
,如下所示。
private void initMyLocationNewOverlay() {
GpsMyLocationProvider provider = new GpsMyLocationProvider(context);
provider.addLocationSource(LocationManager.NETWORK_PROVIDER);
myLocationNewOverlay = new MyLocationNewOverlay(provider, mapView);
myLocationNewOverlay.enableMyLocation();
mapView.getOverlays().add(myLocationNewOverlay);
}