Ich entwickle eine Anwendung, in der der Standort des Benutzers nur mit dem GPS-Anbieter verfolgt wird (Nur-Geräte-Modus des Standortes). Wenn der Benutzer daher seine Standortpriorität auf "Approximate Location" unter Verwendung von Wifi und Daten einstellt, funktioniert die Anwendung nicht wie beabsichtigt. Daher muss ich die Benutzerauswahl des Standortmodus (hohe Genauigkeit, ungefähre Position oder nur Gerät) programmatisch überprüfen und entsprechende Dialogfelder anzeigen. Was wäre ein sauberer Weg, dies zu erreichen?Wie finde ich programmgesteuert heraus, welcher Modus von Location aktiviert ist?
Antwort
können Sie LocationProvider.getAccuracy: https://developer.android.com/reference/android/location/LocationProvider.html
Aus der Dokumentation: int getAccuracy() eine konstante beschreibt horizontale Genauigkeit dieser Anbieter zurück. Wenn der Anbieter feineres Korn oder genauen Standort zurückgibt, wird ACCURACY_FINE zurückgegeben, andernfalls wird ACCURACY_COARSE zurückgegeben, wenn der Standort nur ungefähr ist.
Dank lassen Sie mich es betrachten! –
1, um den Provider-Modus zu überprüfen (GPS, Netzwerk, Keller-id)
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
//get currently used providers
locationManager.getProviders(true);
2 zeigen Dialog
new AlertDialog.Builder(this).
setTitle("Title").
setMessage("content").
show();
Beachten Sie, dass Ihre App für beide GPS-Only-Modus arbeiten und auch High Accuracy-Modus, da bei beiden Einstellungen GPS aktiviert ist.
Um zu überprüfen, ob GPS aktiviert ist, wird dies den Zweck erfüllen.
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean isGpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!isGpsEnabled) {
//show your alert here
}
Werfen Sie einen Blick auf die Antwort hier: http://stackoverflow.com/questions/30467850/monitoring-geofences-after-user-turns-location-service-off-and-on/30580898 –
@DanielNugent Ich will nicht so schwer wie Broadcast Receiver. Ich fühle Karens Antwort ist der Weg zu gehen. Lass mich das überprüfen. –
Diese verknüpfte Antwort hat den Code, den Sie brauchen, aber viele andere Sachen auch. Ich habe gerade eine Antwort hier gepostet, die nur den Code hat, den Sie brauchen .... –