Erlaube die Eingabe der Anwendung nur, wenn mindestens ein Standortanbieter in Android aktiviert ist

StackOverflow https://stackoverflow.com/questions/9493874

Frage

In meiner Anwendung muss für den Benutzer mindestens ein Standortanbieter aktiviert sein.Um zu wissen, ob einer aktiviert ist, benutze ich:

isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                .isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

Jetzt habe ich eine Aktivitätswarnung erstellt, die darauf hinweist, dass keine aktiviert ist, und wenn der Benutzer "GPS aktivieren" auswählt, öffne ich die GPS-Optionen mit der Absicht ACTION_LOCATION_SOURCE_SETTINGS.

Ich möchte (nach der Auswahl des Benutzers) überprüfen, ob er einen aktiviert hat, und ihn nur fortfahren lassen, wenn er dies getan hat.

Ich habe diesen Code in der Schaltfläche "GPS aktivieren"

showGpsOptions();
isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (isGpsLocationEnabled || isNetworkLocationEnabled){
    Intent startIntent = new Intent(EnableLocationProviderActivity.this, SensingService.class);
    startService(startIntent);
} else {
    finish();
}

Mein Problem ist, dass isGpsLocationEnabled und isNetworkLocationEnabled nie mit der Benutzerauswahl in den Netzwerkeinstellungen aktualisiert werden, da der Code seine Ausführung nach showGpsOptions () fortsetzt (ich weiß, dass er den UI-Thread nicht blockieren kann, aber wie kann ich diese Situation überwinden)??

Gibt es überhaupt eine Möglichkeit, Code auszuführen, nachdem der Benutzer in den Netzwerkeinstellungen etwas ausgewählt hat?

Danke!Guillermo.

War es hilfreich?

Lösung

wenn einstellungsbildschirm komm vor deine activity, logisch und nach Dokumenten, Ihre activity is paused und dann, wenn es benötigt wird, Ihre activity is resumed...also denke ich, Sie sollten den Prüfcode in verwenden onResume...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top