Prepare o veículo

Esta seção mostra como deixar o veículo pronto para viagens. Conclua cada uma das etapas a seguir para que seu back-end possa fazer a correspondência entre um veículo e uma viagem.

Configurar o listener

Como o SDK do Driver executa 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 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 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

Depois de configurar o listener, ative as atualizações de localização da seguinte maneira:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

Definir o intervalo de atualização

Por padrão, o SDK do motorista envia atualizações de localização em intervalos de 10 segundos quando o estado do veículo é ONLINE. É 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.

Definir o estado do veículo como on-line

Ao ativar as atualizações de local, você pode definir o estado do veículo como ONLINE para disponibilizá-lo para consultas SearchVehicles no Fleet Engine. O SDK do motorista envia o estado atualizado do veículo com as atualizações de localização.

É possível definir o estado do veículo diretamente no SDK do Driver ou no servidor do Fleet Engine. Para saber mais, consulte Atualizar um veículo.

Os exemplos a seguir mostram como definir o estado do veículo como on-line no SDK do driver:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);

Kotlin

val reporter = ...

reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)

O StatusListener também informa todos os erros que ocorrem ao atualizar o estado do veículo.

A seguir

Definir os detalhes da viagem