Ü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, erkennen, wenn andere Apps gestartet werden
  • Kannst du DDMS in Eclipse deaktivieren?
  • Android-Anwendung startet beim Öffnen durch Anklicken des Anwendungssymbols neu
  • Holen Sie sich Produkt Geschmack oder bauen Variante in einer Android-App
  • Ist es möglich, die Google Maps API durch Reverse Proxy in meiner App zu verbinden?
  • Gibt es Code für Snackbars in Android L oder sind wir erwartet, um sie selbst zu implementieren?
  • 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)); } 

  • Erstellen eines SearchView, das wie die Materialgestaltungsrichtlinien aussieht
  • Crosswalk Cordova - js alert zeigt Blockzeichen auf der chinesischen Schnittstelle android
  • Wie benutzt man Smart-Lock-API in meiner Anwendung, um den Patter-Modus zu entsperren?
  • ADT 21 Update nicht von Eclipse erkannt
  • Wie man den LightingColorFilter benutzt, um das Bild dunkel zu machen
  • Bite Runtime Android für immer Loading
  • 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.