請上車

本節說明如何準備車輛,以便接送乘客。您必須完成下列每個步驟,後端才能將車輛與行程配對。

設定事件監聽器

由於 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 時,驅動程式 SDK 會以 10 秒間隔的間隔傳送位置更新資訊。您可以使用 reporter.setLocationReportingInterval(long, TimeUnit) 變更這段間隔。支援的更新間隔下限為 5 秒。更新頻率越高,要求速度就會越慢,且可能發生錯誤。

將車輛狀態設為「已連線」

啟用位置更新功能後,您可以將車輛狀態設為 ONLINE,讓車輛適用於 Fleet Engine 中的 SearchVehicles 查詢。Driver SDK 會傳送更新後的車輛狀態,以及位置更新。

您可以直接在驅動程式 SDK 或 Fleet Engine 伺服器中設定車輛狀態。詳情請參閱「更新車輛」一文。

以下範例說明如何在驅動程式 SDK 中將車輛狀態設為線上:

Java

RidesharingVehicleReporter reporter = ...;

reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);

Kotlin

val reporter = ...

reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)

StatusListener 也會回報更新車輛狀態時發生的所有錯誤。

後續步驟

設定行程詳細資料