Android 打开内置的驾驶方向图

Android 打开内置的驾驶方向图,android,google-maps,Android,Google Maps,我想打开一个内置谷歌地图意图来显示两个地方之间的路线,而不打开一个完成操作对话框,该对话框要求浏览器和地图 我试过这个 Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr="+PreferenceData.getLatitude(HotelInfomation.this)+","+PreferenceData.getLongitude

我想打开一个
内置谷歌地图意图
来显示两个地方之间的路线,而不打开一个
完成操作对话框,该对话框要求浏览器和地图

我试过这个

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr="+PreferenceData.getLatitude(HotelInfomation.this)+","+PreferenceData.getLongitude(HotelInfomation.this)+"&daddr="+latitude+","+longitude));
startActivity(intent);
但它会打开一个对话框,要求使用浏览器或地图完成操作。我不想要那种对话

without open a complete action dialog, which asked for Browser and Map
在这种情况下,您需要告诉android要使用哪个应用程序来显示地图

给你

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr="+PreferenceData.getLatitude(HotelInfomation.this)+","+PreferenceData.getLongitude(HotelInfomation.this)+"&daddr="+latitude+","+longitude));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
在这种情况下,您需要告诉android要使用哪个应用程序来显示地图

给你

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr="+PreferenceData.getLatitude(HotelInfomation.this)+","+PreferenceData.getLongitude(HotelInfomation.this)+"&daddr="+latitude+","+longitude));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

这是不可靠的。首先,谷歌地图并不是每个设备上都有。其次,谷歌需要做的就是重构他们的应用程序,或者更改活动上的
exported
标志,这样代码就会中断。事实上,由于安卓设备上安装了许多版本的谷歌地图,因此,今天所有这些设备上都不可能安装谷歌地图。绝不要为非您自己的应用程序硬编码类和包名称。@Vipulsah:“解决办法”是只允许用户使用选择器。或者,使用
geo:
URL而不是
http:
URL,但如果用户安装了多个地图应用程序(例如Google Maps和OsmAnd),则仍然会出现选择器。这将不可靠。首先,谷歌地图并不是每个设备上都有。其次,谷歌需要做的就是重构他们的应用程序,或者更改活动上的
exported
标志,这样代码就会中断。事实上,由于安卓设备上安装了许多版本的谷歌地图,因此,今天所有这些设备上都不可能安装谷歌地图。绝不要为非您自己的应用程序硬编码类和包名称。@Vipulsah:“解决办法”是只允许用户使用选择器。或者,使用
geo:
URL而不是
http:
URL,但如果用户安装了多个地图应用程序(例如,Google Maps和OsmAnd),则仍然会显示选择器。您可能不需要该对话框。你的一些用户会——毕竟,他们可能更喜欢使用不同的映射应用程序。如果您的用户厌倦了该对话框,他们完全可以在选择器中选中“将此设置为当前此操作的默认设置”。@commonware,感谢您的宝贵建议。我会照你的建议去做。你可能不想要那个对话。你的一些用户会——毕竟,他们可能更喜欢使用不同的映射应用程序。如果您的用户厌倦了该对话框,他们完全可以在选择器中选中“将此设置为当前此操作的默认设置”。@commonware,感谢您的宝贵建议。我会照你的建议去做。