Je suis en train de tester la partie location
de mon application avec diverses configurations. En mode AirPlane
je ne reçois aucun message envoyé à ILocationListener
, bon ou mauvais, à partir du LocationManager
suivant sur un Android 2.2. Dans ce cas, le bestProvider est "réseau".Android: LocationManager lorsque le mode avion sur
Comment puis-je déterminer s'il est tout simplement impossible d'obtenir un emplacement pour pouvoir informer l'utilisateur? Quand il y a un réseau ou un GPS, tout fonctionne bien.
Le code que j'utilise (Mono pour Android C#) est:
var cr = new Criteria();
cr.Accuracy = Accuracy.Coarse;
cr.PowerRequirement = Power.Low;
cr.AltitudeRequired = false;
cr.BearingRequired = false;
cr.SpeedRequired = false;
cr.CostAllowed = true;
string serviceString = Context.LocationService;
locationManager = (LocationManager)GetSystemService (serviceString);
var bestProvider = locationManager.GetBestProvider (cr, false);
locationManager.RequestLocationUpdates (bestProvider, 5000, 500f, this);
Je suis assez sûr que le GPS fonctionne toujours sur la plupart des téléphones. Cela peut prendre beaucoup plus de temps pour obtenir une solution, mais cela fonctionne en mode avion. –
Bien, même si cela fonctionne, l'utilisateur ne peut stocker les données dans le périphérique local pour une utilisation future, sauf si l'utilisateur change le mode de profil. – Lucifer
Il devrait cependant jeter un message disant qu'il ne peut rien obtenir. –