Prepare o veículo

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 associar um veículo a uma tarefa.

Configurar o listener

Como o SDK do driver executa ações em segundo plano, use DriverStatusListener para acionar notificações quando determinados eventos ocorrerem, como erros, avisos ou mensagens de depuração. Os erros podem ser transitórios por natureza (como BACKEND_CONNECTIVITY_ERROR) ou podem fazer com que as atualizações de local sejam interrompidas permanentemente. 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 do Driver envia atualizações de local em intervalos de 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 com suporte é de 5 segundos. Atualizações mais frequentes podem resultar em solicitações mais lentas e erros.