Prepare o veículo

Esta seção mostra como deixar o veículo pronto para as tarefas programadas. Você deve conclua cada uma das etapas a seguir antes que seu back-end possa corresponder um veículo para uma tarefa.

Configurar listener

Como o SDK do Driver realiza ações segundo plano, use DriverStatusListener para acionar notificações quando determinados como erros, avisos ou mensagens de depuração. Os erros podem ser temporária por natureza (como BACKEND_CONNECTIVITY_ERROR), ou podem fazer com que as atualizações de localização sejam interrompidas permanentemente. Por exemplo, se você receber VEHICLE_NOT_FOUND, isso indica um erro de configuração.

O exemplo abaixo 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

Quando você tiver uma instância de *VehicleReporter, ative as atualizações de localização 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 do driver envia atualizações de localização em intervalos de 10 segundos. Cada location update também indica que o veículo está on-line. É possível mudar isso intervalo com reporter.setLocationReportingInterval(long, TimeUnit): O mínimo aceito é de 5 segundos. Atualizações mais frequentes podem resultar em lentidão solicitações e erros.