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