2017-06-14 1 views
-1

Je souhaite que les informations de localisation soient disponibles pour mon application, à partir du GPS si disponible, et si non d'autres moyens tels que le Wifi.Emplacement Android Non disponible lorsqu'il n'y a pas de GPS

Régions info fonctionne très bien avec le GPS, mais si je tourne Paramètres-> Personal-> Mode Emplacement = économiser la batterie à l'exercice d'un scénario non GPS, ou tout simplement exécuter l'application où ceux-ci ne fait pas l'accès au GPS, des informations de localisation n'est plus disponible pour l'application.

Dans mon code ce test retourne false lorsque le GPS ne sont pas disponibles:

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

Mon manifest.xml est configuré comme suit:

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

Toutes les idées s'il vous plaît. Comment puis-je activer les services de localisation lorsque le GPS n'est pas disponible?

+1

Qu'en est-il du fournisseur de réseau de 'LocationManager'? – Blackkara

+0

Merci Blackkara. C'était le problème. – MHugh

Répondre

0

La réponse était simplement d'activer le fournisseur de réseau en plus du GPS.

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

J'avais mal lu la documentation des permissions. Tout simplement parce que cela dit que si vous utilisez les permissions Fine (GPS) vous obtenez implicitement des permissions Coarse (Network), ne signifie PAS que vous n'avez pas besoin de les activer dans le code.