it-swarm.com.de

android check location services aktiviert mit play services location api

Sie können feststellen, ob Anbieter mit LocationManager verfügbar sind. Kann dies jedoch mit der Standort-API von Google Play Services durchgeführt werden?

Wenn nichts aktiviert ist, ist "Zugriff auf meinen Standort" deaktiviert, alle API-Aufrufe (connect (), requestLocationUpdates ()) sind erfolgreich, aber Sie erhalten nie ein onLocationChanged ().

Scheint dumm zu sein, sowohl LocationManager als auch LocationClient verwenden zu müssen.

Ich denke, was ich brauche, ist eine Möglichkeit zu wissen, dass onLocationChanged (0 wird niemals angerufen werden.

25
user1248322

Ich habe die Dokumente gekämmt und auch keine Möglichkeit gefunden, LocationClient zu verwenden, um zu ermitteln, ob Standortdienste aktiviert sind. onConnected, onDisconnected und onConnectionFailed scheinen nicht damit verbunden zu sein, ob Location Services aktiviert sind oder nicht.

Ich mache derzeit Standortanfragen mit LocationClient, benutze aber die alte locationManager.isProviderEnabled(String provider)-Methode, um zu ermitteln, ob die Standortdienste aktiviert sind. Dies ist für mich optimal, da LocationClient selbst dann keine Möglichkeit bietet, zwischen GPS und Netzwerk zu unterscheiden, und ich möchte wirklich bitten, dass der Benutzer GPS aktivieren kann.

if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    //GPS Provider disabled
    return false;
}
26
Kris Pena

Es gibt jetzt eine zuverlässige Methode, um festzustellen, ob seit Google Play Services 7.3.0 Updates für Standorte verfügbar sind:

Implementieren und registrieren Sie eine LocationCallback und überschreiben Sie onLocationAvailability() oder rufen Sie LocationServices.FusedLocationApi.getLocationAvailability() an, um den Verfügbarkeitsstatus abzurufen. Wenn dies nicht der Fall ist, wissen Sie, dass die Standortaktualisierungen nicht übermittelt werden, es sei denn, die Gerätekonfiguration wurde geändert.

Diese Methode ist eigentlich ziemlich intelligent: Sie kann beispielsweise feststellen, dass auf einem Nur-WLAN-Gerät keine Standortaktualisierungen bereitgestellt werden, wenn WLAN deaktiviert ist oder sich das Gerät im Flugzeugmodus befindet, selbst wenn der Netzwerkstandortanbieter immer aktiviert ist.

12
BladeCoder

Google Play Services 7.0 eingeführt a Settins Api Hier können Sie die gewünschten Standorteinstellungen abfragen und dann abfragen, ob sie aktiviert sind, oder den Benutzer nach deren Aktivierung fragen.

4
lujop

Das funktioniert für mich. Getestet auf einem Amazon-Tablet gegen ein Samsung s7

 if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context) == ConnectionResult.SUCCESS) {
            //Google Play services are available
    } else {
            //Google Play services are not available on this device
    }
0
Ch Vas