J'utilise le SDK HERE Android intégré dans une application QT, et j'essaie de simuler des directions virage par virage, mais sans affichage de carte. Il n'y a pas de carte ou de MapFragment dans mon application, j'utilise la fonction MapEngine y NavigationManager directement. Et j'initialise le moteur de carte sur le fil d'exécution principal de l'interface utilisateur, comme cela est recommandé (je ne suis pas sûr que cela puisse être un problème ici).
Je suis capable d'initialiser le moteur de carte, de créer la route et de l'envoyer avec succès. Cependant, lorsque j'utilise NavigationManager pour simuler l'itinéraire, je peux voir le mouvement de la navigation (les mises à jour des coordonnées en position progressent). Cependant, j'ai des ManeuverEventListeners et des NewInstructionEventListeners, et ils ne sont jamais appelés.
Et dans ma position d'auditeur, si j'appelle getNextManeuverDistance()
o getETA()
Je reçois des réponses d'erreur. Toutes les autres fonctions ont réussi, et la navigation simulée se termine finalement (au moment prévu) mais sans jamais délivrer d'instructions.
J'ai le même code qui fonctionne bien dans une application exemple, mais en l'exécutant dans le cadre QT, je n'obtiens jamais de distances ou de manœuvres valides. Dans la référence de l'API, il est dit getNextManeuver()
retournera null (et get distance retournera MAX_INT) si la prochaine manoeuvre n'est pas encore disponible. Quelle peut être la cause de ce problème ?
Est-il possible de l'exécuter dans une application sans Map ni MapFragment ? Avez-vous une idée de la raison pour laquelle NavigateManager simulate agirait de cette façon ?