2016-03-28 1 views
1

Я оцениваю новый здесь SDK для Android и успешно реализовал отображение карты, маршрутизацию и навигацию. Меня попросили добавить ETA и поэтому просмотрели документацию SDK и нашли метод getEta() для NavigationManager.Здесь навигация API NavigationManager getEta() всегда возвращает недопустимый/неизвестный

Всякий раз, когда я вызываю этот метод, возвращаемое значение равно 0; т.е. ToString() на возвращенном объекте Date является "ETA: ср 31 декабря 18:59:59 EST 1969"

Точный код, я использую это, примерно один раз в секунду:

Date eta = NavigationManager.getInstance().getEta(true, Route.TrafficPenaltyMode.DISABLED); 
Log.d(logTag, "ETA: " + eta.toString()); 

Я предполагаю, что я где-то пропустил какой-то установочный вызов, но ничего из документации SDK не выпрыгивает на меня. Я могу проверить, установлен ли пункт назначения и завершен расчет маршрута.

ответ

0

Существует навигационная система NavigationManager.getEta(), которую вы можете/должны использовать, когда находитесь в режиме навигации, чтобы получить расчетное время прибытия (в форме даты), учитывающее вашу позицию. Когда навигация не запущена, вы получаете результат, который вы написали.

Если вы хотите получить расчетное время прибытия для маршрута вне навигации (например, в обзоре маршрута), вы можете вызвать Route.getTta() в своем объекте Route, и вы вернете длительность маршрута (например, на основе вашей настройки в маршрутах/routeplan) в секундах.

+0

Как я уже сказал в своем вопросе, это во время режима навигации, после того, как маршрут установлен и расчет маршрута завершен (вызывается onCalculateRouteFinished). Редактировать, чтобы добавить: в конце концов он начинает сообщать об Эте, но обычно не до нескольких секунд после завершения расчета маршрута. – androidallen

+0

Как насчет добавления проверки после начала навигации. Navigationmanager.getRunningState() == NavigationManager.NavigationState.RUNNING –