2016-04-26 17 views
0

App sollte meinen aktuellen Standort und markieren Sie es auf der Karte, anstatt dieses stürzt mein Projekt ab. Hier ist Code:Aktuellen Standort erhalten Android

public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
      == PackageManager.PERMISSION_GRANTED) { 
     mMap.setMyLocationEnabled(true); 
    } 
    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    String provider = locationManager.getBestProvider(criteria, true); 
    Location myLocation = locationManager.getLastKnownLocation(provider); 
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
    double latitude = myLocation.getLatitude(); 
    double longitude = myLocation.getLongitude(); 
    LatLng Me = new LatLng(latitude, longitude); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(Me)); 
    mMap.animateCamera(CameraUpdateFactory.zoomTo(14)); 
    mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("You are here!")); 

} 

Irgendwelche Ideen, wie es zu beheben, oder was ist hier falsch? (es ist Google Projekt, alle benötigten Berechtigungen btw gewährt werden)

+0

Nun, Sie versuchen, einen Speicherort zu bekommen, ohne unbedingt die Erlaubnis dazu zu haben ('getLastKnownLocation()'). Bearbeite darüber hinaus deine Frage und poste den Java-Stack-Trace deines Absturzes. – CommonsWare

+0

Wenn Sie sagen, es stürzt ab, wo ist Ihr Stack-Trace – tyczj

+0

Mein schlechtes, ich werde bald Spur hinzufügen. Ich habe nicht genau erklärt, was dort passiert, also: Die Anwendung läuft, dann wird sie plötzlich mit der Meldung "Ihr Projekt wurde gestoppt" beendet. <- Emulator (Entschuldigung, wenn ich etwas missverstehen, fast brandneu zu andriod) – KKKk

Antwort

0

Sie die Locationmanager für diese verwenden:

locationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE); 
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
if (location != null) { 
    latitude=location.getLatitude(); 
    longitude=location.getLongitude(); 
    Log.d("GPS","lat : "+latitude); 
    Log.d("GPS","long : "+longitude); 
} 

Dann einfach die Position in der Karte anzuzeigen, wie in this Tutorial gezeigt.

Ich hoffe, es hilft!

Verwandte Themen