Prepara il veicolo

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à.

Configura listener

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 intervallo con reporter.setLocationReportingInterval(long, TimeUnit). Il minimo supportato di aggiornamento è di 5 secondi. Aggiornamenti più frequenti possono rallentare richieste ed errori.