打开带有自定义片段指示的google map活动后,它会终止整个应用程序。
mapView.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(“ http://maps.google.com/maps?saddr=” + currlat +“,” + currLon +“&daddr =” + destinationLat +“,” + destinationLon +“&travelmode = driving”)) );
在这里mapView表示我的自定义fragmnet。
答案 0 :(得分:0)
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=" + lastLocation.getLatitude() + "," + lastLocation.getLongitude() + "&daddr=" +
destinationLocationLatitude + "," +
destinationLocationLongitude));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
答案 1 :(得分:0)
google developer doc中有一个示例,您在其中使用geo:URI而不是url
此URI的工作方式如下:
使用
geo:
意向在指定位置和缩放级别显示地图。
geo:latitude,longitude?z=zoom
这里是使用它的代码。此外,它还可以确保Google Maps能够接收它而不是其他应用程序,并且如果未安装Maps,它什么也不会做,但是您可以添加else
语句来告诉用户他需要Maps来执行操作
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
要启动导航,请使用google.navigation:q=latitude,longitude
。起始位置将是用户当前位置。参见Google开发者网站的this part
Uri gmmIntentUri = Uri.parse("google.navigation:q=37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}