在我的Android应用程序中实现Google导航时,我遇到了一个非常奇怪的问题。
我正在通过打开网址
来实施Google导航https://maps.google.co.in/maps?saddr=xxxxxxxxxxxxxxxxxx&daddr=xxxxxxxxxxxxx
其中xxxx表示源地址和目标地址。
使用隐式意图。通过在桌面上打开网址,我成功地将导航导航到了该位置。
但是当我尝试在设备上运行该应用程序时,该网址会重定向到Google搜索页面。当我按下后退按钮时,我会获得从当前位置(根据谷歌地图)到使用反向地理编码获得的当前位置的导航路线。简而言之,上面提到的网址并不能达到目的。
请帮我解决问题。如果Google导航实施有误,请同时帮助我。
提前致谢
答案 0 :(得分: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);
您可以使用该代码启动Google地图应用进行导航! ps:dirflg = d;你可以改变参数" d"意味着驾驶汽车," w"意思是走路" r"通过公共汽车或其他方式。
答案 1 :(得分: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有更多关于这种方法的讨论。请检查它是否符合您的要求
答案 2 :(得分: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);