我正在编写一个让用户在原点,出发地以及出发或到达时间进行写操作的android程序。用户按下“搜索”后,将显示几个不同的卡,每个卡代表一种不同的运输方式(汽车,步行,骑自行车和公交)。每张卡上都有一个按钮,该按钮应打开Google Maps应用程序,其中包含用户已经在应用程序中输入的内容。不幸的是我无法获得出发/到达时间。它始终默认为“现在”。
到目前为止,我发现应该添加&arrival_time=[TIME]
或&departure_time=[TIME]
。但这似乎不起作用。添加此功能后,就好像根本不存在一样。
private void openMaps(Trip trip) {
String uri = "https://maps.google.com/maps" +
"?saddr="+trip.getOrigin()+
"&daddr="+trip.getDestination()+
"&dirflg="+getDirFlag(trip.getMode());
if (trip.getMode().equals(TravelMode.TRANSIT)) {
ZoneId zoneId = ZoneId.systemDefault(); // or: ZoneId.of("Europe/Oslo");
if(trip.getIsDeparture()) {
long epoch = trip.getDeparture().atZone(zoneId).toEpochSecond();
uri += "&departure_time=" + epoch;
} else {
long epoch = trip.getArrival().atZone(zoneId).toEpochSecond();
uri += "&arrival_time=" + epoch;
}
}
System.out.println(uri);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
mapIntent.setPackage("com.google.android.apps.maps");
mCtx.startActivity(mapIntent);
}
我希望Google Maps应用程序可以使用起点,目的地,运输方式打开,并且如果运输方式为TRANSIT,则还应根据getIsDeparture()返回的值设置出发或到达时间。除到达/离开时间外,其他一切正常