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.