我正在尝试让MyLocationNewOverlay在我的代码中工作,但它似乎没有工作。我添加了以下权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
以下是我的代码。我正在使用一个片段,在其中我编写了以下代码
MapView mv=(MapView) getView().findViewById(R.id.f_map);
mv.setVisibility(MapView.VISIBLE);
mv.setTileSource(TileSourceFactory.MAPNIK);
mv.setMultiTouchControls(true);
IMapController mapController = mv.getController();
mapController.setZoom(11);
GeoPoint startPoint = new GeoPoint(13.074281, 80.264458);
mapController.setCenter(startPoint);
GpsMyLocationProvider g=new GpsMyLocationProvider(getContext());
g.setLocationUpdateMinTime(1000);
location_overlay=new MyLocationNewOverlay(g,mv);
location_overlay.enableFollowLocation();
location_overlay.runOnFirstFix(new Runnable() {
public void run() {
Log.d("MyTag", String.format("First location fix: %s", location_overlay.getLastFix()));
}
});
mv.getOverlays().add(location_overlay);
未打印日志,这意味着未发生位置更新。我还尝试输出location_overlay.isEnabled()
和location_overlay.isLocationEnabled()
的结果,两者都返回true。
当我尝试使用location_overlay.getMyLocation()
获取最后一个位置时,它返回null。
我还尝试使用GpsMyLocationProvider
切换g.addLocationSource(LocationManager.NETWORK_PROVIDER)
的来源。
仍然没有去。我在视图中没有看到任何内容,也没有获得位置更新。任何帮助将不胜感激。
P.S。我还尝试为GpsMyLocationProvider g.setLocationUpdateMinDistance(0);
设置最小距离。仍然没有结果。