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.
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
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