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