0

J'ai deux morceaux de code, un pour obtenir des adresses d'une position & un pour obtenir la position de l'adresse.Xamarin Forms Geocode Android

GetAddressesForPosition

var geoCoder = new Geocoder(); 

      Task.Run(async() => 
      { 
       var possibleAddresses = await geoCoder.GetAddressesForPositionAsync(position); 

       Device.BeginInvokeOnMainThread(() => 
       { 
        var firstAdress = possibleAddresses.FirstOrDefault(); 
        GeolocationAdressEntry.Text = firstAdress; 
        //GeolocationAdressEntry.Text = [email protected]"{firstAdresse.} {firstAdresse.PostalCode} {firstAdresse.Locality}"; 
       }); 

      }); 

Pour ce code, je n'ai aucune exception et le code ne va jamais après

var possibleAddresses = await geoCoder.GetAddressesForPositionAsync(position); 

GetPositionsForAddress

var elem = (Entry)sender; 
      var geoCoder = new Geocoder(); 

      IEnumerable<Xamarin.Forms.Maps.Position> loc; 

      try 
      { 
       loc = await geoCoder.GetPositionsForAddressAsync(elem.Text); 

       var firstLoc = loc.FirstOrDefault(); 
       var adress = elem.Text; 

       CreateNewPin(firstLoc, adress); 
      } 
      catch (Exception ex) 
      { 
       Debug.WriteLine(ex.Message); 
      } 

Pour celui-ci il a jeté une erreur: "grpc failed". Si nécessaire, je peux poster l'erreur complète.

Ceci est ennuyeux car il fonctionne parfaitement dans IOS.

J'ai essayé sur les émulateurs (Genymotion & adb) avec différentes versions et aussi dans un vrai appareil. Même problème.

+0

Je ne trouve cela que sur les émulateurs, c'est une limitation connue avec les émulateurs Android. En ce qui concerne l'appareil, mon code fonctionne sur tous les appareils de test que j'ai, à partir d'Android 4.4 -> Android 7.1. Êtes-vous sûr d'avoir correctement configuré votre clé API Google pour votre projet Android? – Ewald

+1

Bonjour, j'ai oublié de télécharger ce fil. Vous avez tout à fait raison, il s'agit d'un problème d'émulateur que le code fonctionne parfaitement dans l'appareil (il semble que 4.4 nécessite parfois un redémarrage pour fonctionner) – OrcusZ

Répondre

0

Le problème provient de l'émulateur. Le code fonctionne dans un vrai périphérique.