2017-09-27 2 views
0

Je suis essayer d'obtenir l'emplacement géographique actuel du téléphone en utilisant 'plugin.geolocator' mais il fonctionne très bien dans ios dans android obtenir l'exception d'annulation de tâche. Voici le code que j'ai essayé. Veuillez suggérer n'importe quelle raison pour laquelle je reçois cette exception.L'emplacement géographique ne fonctionne pas dans xamarin android

exemple de code:

  var locator = CrossGeolocator.Current; 
      locator.DesiredAccuracy = -1; 

      if (locator.IsGeolocationEnabled) 
      { 
       var position = await locator.GetPositionAsync(TimeSpan.FromMilliseconds(5000)); 
      } 

Ce sont les permissions que j'ai dans le fichier Gave manifeste Android. Je reçois une exception d'annulation de tâche pendant que je teste dans l'émulateur. J'ai essayé avec l'intervalle changeant de temps mais aucune chance d'obtenir l'exception d'annulation de tâche seulement.

+0

Avez-vous activé le GPS dans votre émulateur? – SushiHangover

+0

oui, j'ai activé gps dans mon émulateur. J'ai testé dans un appareil physique aussi, dans un appareil physique aussi GPS ne fonctionne pas. – Deepak

Répondre

0

Définissez une valeur différente pour la précision souhaitée (grandes valeurs -> plus de chance d'avoir un résultat):

locator.DesiredAccuracy = 100; 
+0

J'ai essayé de définir une grande valeur mais pas de chance. L'emplacement géographique ne fonctionne pas. – Deepak

+0

Downvote n'encourage pas les gens à vous aider ... Vous publiez du code avec DesiredAccuracy = -1 c'est la raison de ma suggestion. Vous devriez utiliser l'extrait complet pour gérer tous les cas: https://jamesmontemagno.github.io/GeolocatorPlugin/CurrentLocation.html J'utilise ce plugin et la géolocalisation fonctionne très bien sur beaucoup de périphériques ... –

+0

Je n'ai pas voté la réponse . Si ce n'est que la possibilité, n'intervenir qu'avec mes mains. Pouvez-vous s'il vous plaît dire que comment éliminer peut-être voté, Avec mon intention, je ne suis pas downvoted. – Deepak

0

Eh bien, vous devez aussi passer outre OnRequestPermissionResult sur votre classe MainActivity:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 
{ 
    PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults); 

} 

Et assurez-vous que votre version Android cible est API 25+. Voir https://jamesmontemagno.github.io/GeolocatorPlugin/GettingStarted.html

+0

Salut, j'ai téléchargé l'Api 26 à partir du gestionnaire sdk android mais dans la version android cible ne montre pas le niveau Api 26, il montrera seulement jusqu'à Api 25. Comment puis-je ajouté que Api 26 dans ma version android cible. – Deepak