Prepare o veículo

Esta seção mostra como preparar o veículo para viagens. É necessário concluir cada uma das etapas a seguir antes que o back-end possa associar um veículo a uma viagem.

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 configurar o listener, ative as atualizações de local 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 Driver 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 driver envia o estado atualizado do veículo com as atualizações de local.

É possível definir o estado do veículo diretamente no SDK do Driver ou no servidor do Fleet Engine. Para mais informações, 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