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.