Überprüfen Sie, ob 'Zugriff auf meinen Standort' aktiviert ist – Android

Ich habe eine Android-App, die Standort verwendet. Aber ich habe festgestellt, dass, wenn Benutzer den "Zugriff auf meinen Standort" in Einstellungen> Standortzugriff deaktivieren, nichts mehr funktioniert. Wie kann ich überprüfen, ob es aktiviert ist? Falls es deaktiviert ist, wie man diese Einstellungen aus meiner App öffnet?

Vielen Dank

  • Android ZXing erhalten Barcode-Bild
  • Ist das Standardverhalten von Android WebView geändert, um intern alle Links zu öffnen?
  • Bekomme Kontext in Nicht-Aktivitätsklasse
  • Android Aufzeichnung eingehender und ausgehender Anrufe
  • Abgestürzt bei angewandter Werkzeugleiste
  • Sound-Erkennung API, SDK (Android)
  • LÖST:

    String locationProviders = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); if (locationProviders == null || locationProviders.equals("")) { ... startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); } 

  • Wie man Android Spinner ohne Down Dreieck auf der rechten Seite des Widgets zu schaffen
  • Android / Java: HttpURLConnection gibt keine Header von umgeleiteten Dateien zurück (zB auf S3)
  • Wie erkennt man, wenn die Batterie niedrig ist: Android?
  • Firebase Push Notification - Wie zeigt man eine Multiline-Nachricht in der Benachrichtigung an
  • Clear SingleChoice ListView auswählen
  • Wie bekomme ich die In-Memory-Größe eines Objekts in Android oder Performance-Benchmarks?
  • 5 Solutions collect form web for “Überprüfen Sie, ob 'Zugriff auf meinen Standort' aktiviert ist – Android”

    Kann dies nützlich sein, um diese Seite zu besprechen, die es über den Standortdienst bespricht

    http://www.scotthelme.co.uk/android-location-services/

    Sie können es so überprüfen:

     LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) // Return a boolean 

    BEARBEITEN:

    Wenn Sie den Netzbetreiber überprüfen möchten:

     LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) // Return a boolean 

    EDIT 2:

    Wenn Sie die Einstellungen öffnen möchten, können Sie diese Absicht verwenden:

     Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 

    Eine alternative Möglichkeit, dies zu tun, ohne Settings.Secure und ohne Scannen alle Standortanbieter wäre zu tun:

     LocationManager locationManager = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE); int providersCount = locationManager.getProviders(true).size(); // Listing enabled providers only if (providersCount == 0) { // No location providers at all, location is off } 

    Leider scheint die Verwendung von Settings.Secure.LOCATION_PROVIDERS_ALLOWED seit API 19 veraltet zu sein.

    Eine neue Art, das zu tun, wäre:

     int locationMode = Settings.Secure.getInt( getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF // Default value if not found ); if (locationMode == Settings.Secure.LOCATION_MODE_OFF) { // Location is off } 

    Es gibt zwei Möglichkeiten, um den Standort zu überprüfen, 1-mit GPS 2-mit Netzwerk-Provider seine besser zu überprüfen, beide Service sind aktiviert oder nicht.Für das verwenden diese Methode 🙂

     public boolean checkServices(){ //check location service LocationManager locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE); if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) && locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ return true; } } 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.