我是新手,花了很多时间试图弄清楚这一点。我在下面有这个代码,因为它似乎不起作用,有时会崩溃。我知道拿着它可能是一件小事,但需要帮助才能把它修好并运行。
有人能帮我纠正吗,因为我也想学。
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends MapActivity {
protected static final GeoPoint Geopoint = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView view = (MapView) findViewById(R.id.mapview);
view.setBuiltInZoomControls(true);
final MapController control = view.getController();
LocationManager manager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener listener = null;
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
//control.setCenter(new GeoPoint((int)((LocationManager) manager).getLatitude(), (int)((LocationManager) manager).getLongitude()));
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
不能保证这是唯一的问题,但对于一个问题,您将一个空的LocationListener
传递给您的LocationManager
。
您必须实例化该侦听器。否则它什么都听不进去。它看起来像这样:
LocationListener listener = new LocationListener(){
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
// This is where you can get your newest location
}
};