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

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

הגדרת ה-listener

מאחר ש-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 שניות. עדכונים תכופים יותר עלולים לגרום לבקשות איטיות יותר ולשגיאות.