מכינים את הרכב

בקטע הזה מוסבר איך להכין את הרכב למשימות מתוזמנות. עליכם להשלים את כל השלבים הבאים כדי שהקצה העורפי יוכל להתאים רכב למשימה.

הגדרת מאזין

מכיוון ש-Driver SDK מבצע פעולות ברקע, אפשר להשתמש ב-DriverStatusListener כדי להפעיל התראות כשמתרחשים אירועים מסוימים, כמו שגיאות, אזהרות או הודעות ניפוי באגים. השגיאות יכולות להיות זמניות (כמו BACKEND_CONNECTIVITY_ERROR), או שהן עלולות לגרום להפסקה של עדכוני המיקום באופן סופי. לדוגמה, אם מופיעה הודעת השגיאה VEHICLE_NOT_FOUND, סימן שיש שגיאה בתצורה.

בדוגמה הבאה מוצגת הטמעה של 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());

הפעלת עדכוני המיקום

אחרי שיוצרים מכונה של *VehicleReporter, מפעילים את עדכוני המיקום באופן הבא:

Java

DeliveryVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

(אופציונלי) מגדירים את מרווח הזמן לעדכון

כברירת מחדל, Driver SDK שולח עדכוני מיקום במרווחי זמן של 10 שניות. כל עדכון מיקום מציין גם שהרכב מחובר לאינטרנט. אפשר לשנות את המרווח הזה באמצעות reporter.setLocationReportingInterval(long, TimeUnit). מרווח הזמן המינימלי שתומכים בו לעדכון הוא 5 שניות. עדכונים תכופים יותר עלולים לגרום לבקשות איטיות יותר ולשגיאות.