2013-07-05 6 views
0

Je suis confronté à un problème très étrange lors de la mise en œuvre de la navigation Google dans mon application Android.Google Maps Navigation - Utilisation de Google Navigation dans l'application Android

Je navigation Google en mise en œuvre de l'ouverture de l'URL -

https://maps.google.co.in/maps?saddr=xxxxxxxxxxxxxxxxxx&daddr=xxxxxxxxxxxxx

où xxxx signifie adresse source et l'adresse de destination.

Utilisation d'une intention implicite. Je suis en mesure d'obtenir la navigation à l'endroit en ouvrant l'URL Web dans le bureau.

Mais lorsque j'essaie d'exécuter l'application sur le périphérique, l'URL se redirige vers la page de recherche google. Et quand j'appuie sur le bouton de retour, j'obtiens un itinéraire de navigation de l'endroit actuel (selon google map), à l'emplacement actuel obtenu en utilisant le géocodage inverse. En bref, l'URL ci-dessus ne sert pas son but.

S'il vous plaît aidez-moi à résoudre le problème. Si la mise en œuvre de la navigation Google est erronée, aidez-moi aussi dans ce domaine.

Merci à l'avance

Répondre

8
Intent intent = new Intent(Intent.ACTION_VIEW, 
      Uri.parse("http://ditu.google.cn/maps?f=d&source=s_d" + 
      "&saddr=31.249351,121.45905&daddr=31.186371,121.489885&hl=zh&t=m&dirflg=d")); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK&Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
    intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
    startActivity(intent); 

vous pouvez utiliser le code pour démarrer l'application google map pour naviguer! ps: dirflg = d; vous pouvez changer le paramètre "d" signifie conduire une voiture, "w" signifie marcher "r" signifie en bus ou autres.

3

Une approche idéale pour accéder aux cartes d'Android seront à tirer une intention d'une activité avec les détails requis des emplacements de source et de destination au lieu d'essayer d'appeler l'url carte comme dans le bureau. L'objectif sera à peu près IKE:

Intent navigation = new Intent(Intent.ACTION_VIEW, Uri 
     .parse("http://maps.google.com/maps?saddr=" 
       + Constants.latitude + "," 
       + Constants.longitude + "&daddr=" 
       + latitude + "," + longitude)); 
startActivity(navigation); 

Ce earlier post a plus de discussion sur cette approche. S'il vous plaît vérifier si cela correspond à vos besoins

+0

Merci Tony, j'ai été en mesure de résoudre le problème en mettant le feu. Le chargement d'un webview n'a pas aidé. –

0
  Intent navigation = new Intent(Intent.ACTION_VIEW, Uri 
        .parse("http://maps.google.com/maps?saddr=" 
          + latitude + "," 
          + longitude + 
          "&daddr=" 
          + lat + "," + long1)); 
      navigation.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK&Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
      navigation.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
      startActivity(navigation); 
+1

Bien que cet extrait de code puisse être la solution, [y compris une explication] (// meta.stackexchange.com/questions/114762/explaining-entirely- code-based-answers) aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. –

+0

Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [De l'examen] (/ review/low-quality-posts/17596319) –