בקטע הזה מוסבר איך להכין את הרכב לנסיעות. חובה להשלים כל אחד מהשלבים הבאים לפני שהקצה העורפי יכול להתאים בין רכב לנסיעה.
הגדרת ה-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());
הפעלת עדכוני המיקום
אחרי הגדרת ה-listener, אתם צריכים להפעיל את עדכוני המיקום באופן הבא:
Java
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
הגדרת מרווח הזמן לעדכון
כברירת מחדל, Driver SDK שולח עדכוני מיקום במרווחי זמן של 10 שניות.
פרק זמן מסוים כשמצב הרכב הוא ONLINE
. אפשר לשנות את המרווח הזה באמצעות
reporter.setLocationReportingInterval(long, TimeUnit)
המינימום הנתמך
מרווח העדכון הוא 5 שניות. עדכונים תכופים יותר עשויים לגרום להאטה
ובקשות ושגיאות.
הגדרת מצב הרכב כ'אונליין'
כשמפעילים עדכוני מיקום, אפשר להגדיר את מצב הרכב ל-ONLINE
כ-
להפוך את הרכב לזמין לשאילתות של SearchVehicles
ב-Fleet Engine.
גרסת ה-SDK של הנהג שולחת את מצב הרכב המעודכן יחד עם עדכוני המיקום.
אפשר להגדיר את מצב הרכב ישירות ב-Driver SDK או ב-Fleet Engine. השרת. מידע נוסף זמין במאמר עדכון רכב.
בדוגמאות הבאות מוסבר איך מגדירים בנהג את מצב הרכב כ'אונליין'. SDK:
Java
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);
Kotlin
val reporter = ...
reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)
StatusListener
גם מדווח על שגיאות שמתרחשות בזמן העדכון של
מצב הרכב.