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.