Esta seção mostra como preparar o veículo para tarefas programadas. É necessário concluir cada uma das etapas a seguir antes que o back-end possa corresponder um veículo a uma tarefa.
Configurar listener
Como o SDK Driver realiza ações em segundo plano, use o DriverStatusListener para acionar notificações quando determinados eventos ocorrerem, como erros, avisos ou mensagens de depuração. Os erros podem ser temporários (como BACKEND_CONNECTIVITY_ERROR) ou causar a interrupção permanente das atualizações de localização. Por exemplo, se você receber um erro VEHICLE_NOT_FOUND, isso indica um erro de configuração.
O exemplo a seguir mostra uma implementação de DriverStatusListener:
class MyStatusListener implements DriverStatusListener {
  /** Called when background status is updated, during actions such as location reporting. */
  @Override
  public void updateStatus(
      StatusLevel statusLevel, StatusCode statusCode, String statusMsg, @Nullable Throwable cause) {
    // Existing implementation
    if (cause != null && cause instanceof StatusRuntimeException) {
      if (Status.NOT_FOUND.getCode().equals(cause.getStatus().getCode())) {
        // NOT_FOUND gRPC exception thrown by Fleet Engine.
      }
    }
  }
}
DriverContextBuilder.setDriverStatusListener(new MyStatusListener());
Ativar atualizações de localização
Depois de ter uma instância *VehicleReporter, ative as atualizações de local da seguinte maneira:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
(Opcional) Definir o intervalo de atualização
Por padrão, o SDK Driver envia atualizações de local a cada 10 segundos. Cada atualização de local também indica que o veículo está on-line. É possível mudar esse intervalo com reporter.setLocationReportingInterval(long, TimeUnit). O intervalo mínimo de atualização aceito é de 5 segundos. Atualizações mais frequentes podem resultar em solicitações mais lentas e erros.