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