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

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

הגדרת מאזין

מכיוון ש-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());

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

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

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();

Kotlin

val reporter = ...

reporter.enableLocationTracking()

הגדרת מרווח הזמן לעדכון

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

הגדרת מצב הרכב ל"אונליין"

כשמפעילים עדכונים לגבי מיקום, אפשר להגדיר את מצב הרכב ל-ONLINE כדי שהרכב יהיה זמין לשאילתות SearchVehicles ב-Fleet Engine. ‫Driver SDK שולח את מצב הרכב המעודכן יחד עם עדכוני המיקום.

אפשר להגדיר את מצב הרכב ישירות ב-Driver SDK או בשרת Fleet Engine. מידע נוסף זמין במאמר עדכון רכב.

בדוגמאות הבאות מוסבר איך להגדיר את מצב הרכב לאונליין ב-Driver SDK:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);

Kotlin

val reporter = ...

reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)

StatusListener גם מדווח על שגיאות שמתרחשות במהלך העדכון של מצב הרכב.

המאמרים הבאים

הגדרת פרטי הנסיעה