2017-04-09 2 views
1

J'ai accès à l'emplacement fin et grossier vérifié dans le fichier manifeste et la première fois que l'application s'exécute sur l'émulateur android (Android_Accelerated_x86 (Android 7.1 - API 25)), il enregistre la latitude. Mais si je déploie l'application pour la deuxième fois, la troisième fois et ainsi de suite, elle s'exécute à l'infini même si le délai d'attente est de 10000 ms (pas d'exception levée). Si je ferme et ouvre l'émulateur et déploie à nouveau l'application, cela fonctionne à nouveau et ainsi de suite. Des idées pour résoudre le problème?Xamarin XLabs Geolocator ne fonctionne pas sur Android

public static class NetworkingTools 
{ 
    private static IGeolocator locator = Resolver.Resolve<IGeolocator>(); 

    static NetworkingTools() 
    { 
     locator.DesiredAccuracy = 50; 
     locator.StartListening(2000, 0, true); 
     GetPosition(); 
    } 

    public async static void GetPosition() 
    { 
     var position = await locator.GetPositionAsync(10000); 
     System.Diagnostics.Debug.WriteLine(position.Latitude); 
    } 
} 

Répondre

0

S'il vous plaît noter la remarque qu'ils ont sur leur page GitHub:

AVIS: Ce projet n'est plus maintenu. Il peut ne pas fonctionner avec les versions plus récentes de Xamarin.Forms.

Je pense qu'il est imprudent de l'intégrer dans votre projet si vous avez le choix. Au lieu de jeter un oeil à la Geolocator Plugin par James Montemagno.

+0

Je l'ai essayé, mais il avait le même problème. À l'heure actuelle, j'utilise Google Play Services - Location. Au cœur de l'emplacement d'accès Android, il s'abonnera à l'emplacement modifié, même pour obtenir l'emplacement actuel. La première fois que l'application est exécutée, elle passe de nulle à fausse position. Après cela, la position est stockée, donc elle ne change pas et si vous essayez de l'obtenir, elle fonctionnera indéfiniment. Seul Google vous permet d'accéder directement à la dernière position connue stockée entre les sessions. – Martin

0

J'avais le même problème, mais apparemment, c'est ainsi que fonctionnent les émulateurs. Il n'y a pas de problème avec le code, vous devez ouvrir les paramètres EMULATOR, aller à la localisation et cliquer sur ENVOYER.

Plus de détails ici:

Getting Location on Android Emulator more then once