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