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