Questa sezione mostra come preparare il veicolo per le attività programmate. Devi completa ciascuno dei seguenti passaggi prima che il tuo backend possa associare un veicolo a un'attività.
Configurare l'ascoltatore
Poiché l'SDK dei driver esegue azioni
in background, usa DriverStatusListener
per attivare notifiche quando
al verificarsi di determinati eventi, ad esempio errori, avvisi o messaggi di debug. Gli errori possono essere
di natura temporanea (ad esempio BACKEND_CONNECTIVITY_ERROR
) o potrebbero
causano l'interruzione definitiva degli aggiornamenti della posizione. Ad esempio, se ricevi un
VEHICLE_NOT_FOUND
, indica un errore di configurazione.
L'esempio seguente mostra un'implementazione di 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());
Attiva aggiornamenti posizione
Una volta ottenuta un'istanza *VehicleReporter
, abilita gli aggiornamenti della posizione come segue:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
(Facoltativo) Impostare l'intervallo di aggiornamento
Per impostazione predefinita, l'SDK Driver invia aggiornamenti della posizione a intervalli di 10 secondi. Ciascuna
l'aggiornamento della posizione indica anche che il veicolo è online. Puoi modificare questo
intervallo con
reporter.setLocationReportingInterval(long, TimeUnit)
. Il minimo supportato
di aggiornamento è di 5 secondi. Aggiornamenti più frequenti possono rallentare
richieste ed errori.