Esta seção mostra como preparar o veículo para tarefas programadas. Você deve conclua cada uma das etapas a seguir antes que seu back-end possa corresponder um veículo para uma tarefa.
Configurar o listener
Como o SDK do Driver realiza ações
segundo plano, use DriverStatusListener
para acionar notificações quando determinados
como erros, avisos ou mensagens de depuração. Os erros podem ser
temporária por natureza (como BACKEND_CONNECTIVITY_ERROR
), ou podem
fazer com que as atualizações de localização 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
Quando você tiver uma instância de *VehicleReporter
, ative as atualizações de localização 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 localização em intervalos de 10 segundos. Cada
location update também indica que o veículo está on-line. É possível mudar isso
intervalo com
reporter.setLocationReportingInterval(long, TimeUnit)
: O mínimo aceito
é de 5 segundos. Atualizações mais frequentes podem resultar em lentidão
solicitações e erros.