2013-07-05 259 views
0

我在我的Android應用程序中實現Google導航時面臨一個非常奇怪的問題。谷歌地圖導航 - 在Android應用程序中使用谷歌導航

我通過打開URL實現谷歌導航 -

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

其中xxxx是指源地址和目的地址。

使用隱含的意圖。通過在桌面上打開網址,我可以成功導航到該地點。

但是,當我嘗試在設備上運行該應用程序時,該url重定向到谷歌搜索頁面。當我按回按鈕時,我從當前位置(按照谷歌地圖)獲取導航路線,到使用反向地理編碼獲得的當前位置。簡而言之,上面提到的網址並不能達到目的。

請幫我解決問題。如果谷歌導航實施是錯誤的,請幫助我。

在此先感謝

回答

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); 

您可以使用代碼來啓動谷歌地圖應用來瀏覽! ps:dirflg = d;您可以更改參數「d」表示駕駛汽車,「w」表示通過巴士或其他方式行走「r」。

3

從Android訪問地圖理想的做法將是從活動中與源和目的地的位置,而不是試圖在桌面調用地圖網址等所需的細節火的意圖。這樣做的目的大致會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); 

earlier post對這種做法進行更多的討論。請檢查它是否適合您的要求

+0

謝謝託尼,我能夠通過解僱問題來解決問題。加載webview沒有幫助。 –

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

儘管此代碼片段可能是解決方案,但[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-基於代碼的答案)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 –

+0

儘管此鏈接可能回答此問題,但最好在此處包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17596319) –