2017-06-14 4 views
-1

Ich möchte, dass Standortinformationen für meine App verfügbar sind, von GPS, falls verfügbar, und wenn nicht von anderen Mitteln wie Wifi.Android-Standort nicht verfügbar, wenn kein GPS vorhanden ist

Region info arbeitet mit GPS in Ordnung, aber wenn ich Einstellungen-> Persönliche-> Ortungsmodus schalten = Battery Saving ein nicht GPS-Szenario zu trainieren, oder einfach nur die App laufen, wenn diese keinen Zugriff auf GPS ist, Standortinformationen ist nicht mehr für die App verfügbar.

In meinem Code Dieser Test ist falsch, wenn GPS nicht verfügbar ist:

 string Provider = LocationManager.GpsProvider; 
     if (m_LocMgr.IsProviderEnabled(Provider)) 
      Log.Info("location available"); 
     else 
      Log.Info("location NOT available"); 

Mein manifest.xml wird wie folgt festgelegt:

... 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-feature android:name="android.hardware.location.gps" /> 
... 

Irgendwelche Ideen bitte. Wie kann ich Standortdienste aktivieren, wenn GPS nicht verfügbar ist

+1

Was ist mit dem Netzwerkanbieter von 'LocationManager'? – Blackkara

+0

Danke Blackkara. Das war das Problem. – MHugh

Antwort

0

Die Antwort war einfach, den Netzwerkanbieter zusätzlich das GPS zu aktivieren.

 Provider = LocationManager.NetworkProvider; 
     if (m_LocMgr.IsProviderEnabled(Provider)) 
      m_LocMgr.RequestLocationUpdates(Provider, 2000, 1, this); 

Ich hatte die Berechtigungsdokumentation falsch gelesen. Nur weil es besagt, dass wenn Sie Fine (GPS) -Berechtigungen verwenden, Sie implizit Grob- (Netzwerk-) Berechtigungen erhalten, bedeutet dies NICHT, dass Sie sie nicht beide im Code aktivieren müssen.

Verwandte Themen