私は奇妙な問題に直面しています。私のアプリは、WIFIを使用すると地図上に現在地を表示しますが、WIFIをオフにしてGPSで確認すると、現在地は表示されますが地図は表示されません。地図が消えて現在地が表示されます。なぜそうなったのか誰か教えてもらえますか? ここに私のコードがあります:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
me = new MyLocationOverlay(this, mapView);
me.enableMyLocation();
mapView.getOverlays().add(me);
mapController.setZoom(10);
mapView.invalidate();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// locationManager.requestLocationUpdates(
// LocationManager.NETWORK_PROVIDER, 0, 0, new GeoUpdateHandler());
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, new GeoUpdateHandler());
}
@Override
protected void onDestroy() {
me.disableMyLocation();
super.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
me.disableMyLocation();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
public class GeoUpdateHandler implements LocationListener {
// @Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude() * 1E6);
int lng = (int) (location.getLongitude() * 1E6);
GeoPoint point = new GeoPoint(lat, lng);
Toast.makeText(getApplicationContext(), "lat and lng"+lat+lng , Toast.LENGTH_SHORT).show();
mapController.setZoom(18);
mapController.animateTo(point); // mapController.setCenter(point);
mapView.invalidate();
}