Ich habe ein Problem mit Android. Auch nachdem der Benutzer seinen Standortdienst eingeschaltet hat, kann der LocationManager den Standort des Benutzers immer noch nicht finden.LocationManager kann den letzten bekannten Standort nach dem Einschalten von GPS immer noch nicht finden
Bevor ich starten Sie die Tätigkeit, die den Standort des Nutzers verwenden, muss ich anrufen folgendes:
//Menu Activity
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
if(lm.isProviderEnabled(LocationManager.GPS_PROVIDER){
Intent nearby = new Intent(mActivityContext, NearbyActivity.class);
startActivity(nearby);
}else{
alertNoGps();
}
Sobald GPS auf dem nahe gelegenen Aktivität eingeschaltet wird, kann gestartet werden, aber die Locationmanager kann immer noch nicht die Nutzer finden, letzte bekannte Lage. Mein relevanter Code dafür ist:
//Nearby Activity
try{
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null){
...
}else{
Toast.makeText ...
}
} catch(SecurityException e){
e.printStackTrace();
}
Das Telefon, auf dem ich gerade teste, läuft Android Marshmallow 6.0.1. Wenn das GPS bereits eingeschaltet ist, bevor die App durch Android Studio läuft, habe ich kein Problem den letzten bekannten Ort zu bekommen. Nur wenn das GPS ausgeschaltet ist, bevor ich die App starte und einschalte, während die App läuft, habe ich Probleme. Was ist mit LocationManger verursacht dies?
Edit: Auch im Manifest habe ich sowohl Fein- als auch Grobstandortberechtigungen. Ich weiß nicht, ob dies ein Problem mit API 23 und höher ist, wegen der zusätzlichen erforderlichen Berechtigungsprüfungen, aber ich muss mir vorstellen, dass sie weiterhin von der Sicherheitsausnahme behandelt werden.