本節說明如何準備車輛,以便接送乘客。您必須完成下列每個步驟,後端才能將車輛與行程配對。
設定事件監聽器
由於 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());
啟用位置資訊更新
設定事件監聽器後,請按照下列步驟啟用位置更新功能:
Java
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
設定更新間隔
根據預設,當車輛狀態為 ONLINE
時,Driver SDK 會以 10 秒的間隔傳送位置更新資料。您可以使用 reporter.setLocationReportingInterval(long, TimeUnit)
變更這段間隔。支援的更新間隔最短為 5 秒。更新頻率越高,要求速度就會越慢,且可能發生錯誤。
將車輛狀態設為線上
開啟位置更新後,您可以將車輛狀態設為 ONLINE
,讓車輛可供 Fleet Engine 中的 SearchVehicles
查詢使用。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
也會回報更新車輛狀態時發生的任何錯誤。