ส่วนนี้จะแสดงวิธีเตรียมรถให้พร้อมสำหรับงานที่กําหนดเวลาไว้ คุณต้องทําตามขั้นตอนต่อไปนี้ให้เสร็จสมบูรณ์ก่อน แบ็กเอนด์จึงจะจับคู่ยานพาหนะกับงานได้
ตั้งค่าโปรแกรมรับฟัง
เนื่องจาก 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 วินาที การอัปเดตบ่อยขึ้นอาจส่งผลให้คำขอช้าลงและเกิดข้อผิดพลาด