I had added permission to manifest, i'm test on emulator then map not animateTo geopoint. I'm test on samsung galaxy mini then app crash :(.
Code:
public class atm_atmogan extends MapActivity {
private LocationManager myLocationManager;
private LocationListener myLocationListener;
private MapView myMapView;
private MapController myMapController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.atm_atmogan);
myMapView = (MapView)findViewById(R.id.map_view);
myMapView.setTraffic(true);
myMapController = myMapView.getController();
myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
myLocationListener = new MyLocationListener();
myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,myLocationListener);
//Get the current location in start-up
double lat = myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLatitude();
double lot = myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLongitude();
GeoPoint initGeoPoint = new GeoPoint((int)(lat*1E6),(int)(lot*1E6));
myMapController.animateTo(initGeoPoint);
myMapController.setZoom(18);
}
private class MyLocationListener implements LocationListener{
public void onLocationChanged(Location loc) {
GeoPoint myGeoPoint = new GeoPoint((int)(loc.getLatitude()*1E6),(int)(loc.getLongitude()*1E6));
myMapController.animateTo(myGeoPoint);
myMapController.setZoom(18);
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider,int status, Bundle extras){
}
}
@Override
protected void onPause() {
super.onPause();
myLocationManager.removeUpdates(myLocationListener);
}
@Override
protected void onResume() {
super.onResume();
myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,myLocationListener);
}
@Override
protected boolean isRouteDisplayed() {
return false;
};
}
Logcat:
02-08 14:31:15.481: D/dalvikvm(2292): GC freed 727 objects / 60152 bytes in 148ms
02-08 14:31:17.012: D/dalvikvm(2292): GC freed 143 objects / 7752 bytes in 68ms
02-08 14:39:10.801: W/KeyCharacterMap(2292): No keyboard for id 0
02-08 14:39:10.801: W/KeyCharacterMap(2292): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
02-08 14:39:17.081: E/ActivityThread(2292): Failed to find provider info for com.google.settings
02-08 14:39:17.091: E/ActivityThread(2292): Failed to find provider info for com.google.settings
02-08 14:39:17.112: E/ActivityThread(2292): Failed to find provider info for com.google.settings
02-08 14:39:17.372: D/LocationManager(2292): Constructor: service = android.location.ILocationManager$Stub$Proxy@44ebe658
02-08 14:39:17.683: I/MapActivity(2292): Handling network change notification:CONNECTED
02-08 14:39:17.683: E/MapActivity(2292): Couldn't get connection factory client
02-08 14:39:20.012: D/dalvikvm(2292): GC freed 5768 objects / 476800 bytes in 87ms
02-08 14:39:20.731: W/KeyCharacterMap(2292): No keyboard for id 0
02-08 14:39:20.731: W/KeyCharacterMap(2292): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
02-08 14:39:20.791: D/LocationManager(2292): removeUpdates: listener = tim_atm.namespace.atm_atmogan$MyLocationListener@44ec2170
02-08 14:39:21.172: D/dalvikvm(2292): threadid=23 wakeup: interrupted