בקטע הזה מוסבר איך להכין את הרכב למשימות מתוזמנות. כדי שה-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());
הפעלת עדכונים לגבי מיקום
אחרי שיוצרים מכונה של *VehicleReporter, מפעילים את עדכוני המיקום באופן הבא:
Java
DeliveryVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
(אופציונלי) הגדרת מרווח הזמן לעדכון
כברירת מחדל, ה-SDK לנהגים שולח עדכוני מיקום במרווחים של 10 שניות. כל עדכון לגבי מיקום גם מציין שהרכב מחובר לאינטרנט. אפשר לשנות את המרווח הזה באמצעות reporter.setLocationReportingInterval(long, TimeUnit). מרווח העדכון המינימלי שנתמך הוא 5 שניות. עדכונים תכופים יותר עלולים להוביל לבקשות איטיות יותר ולשגיאות.