Ich entwickle eine Android-App und möchte den aktuellen Standort des Nutzers abrufen, sobald die App gestartet wird.Warum ruft die getLastLocation() -Methode beim ersten Start der App nicht den Speicherort ab?
Ich verwende diesen Code:
@Override
public void onConnected(@Nullable Bundle bundle) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
if (mLastLocation != null) {
currentLatDouble = mLastLocation.getLatitude();
currentLngDouble = mLastLocation.getLongitude();
}
}
ich ein Snackbar
bin mit der erscheint, wenn die Lage nicht erkannt und hat eine „RETRY“ -Taste. Beim Drücken dieser "RETRY" -Taste wird der obige Code erneut ausgeführt und dieses Mal wird der Ort abgerufen.
Was ich will ist, ich möchte den Standort abrufen, sobald die App gestartet wird.
Bitte lassen Sie es mich wissen.
Ein aswer ist wie üblich ... weil getLastLocation kann null zurückgeben ... – Selvin
@Selvin warum gibt es Null jedes Mal, wenn die App gestartet wird und nicht auf den zweiten Versuch? –
Es kann die Zeit sein, bis das Gerät eine bestimmte Position erreicht und als letzte bekannte Position festgelegt wurde. –