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