車両の準備

このセクションでは、スケジュール設定されたタスクに備えて車両を準備する方法について説明します。バックエンドで車両をタスクに照合するには、次の手順をすべて完了する必要があります。

リスナーを設定する

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 秒です。更新頻度を高めると、リクエストの遅延やエラーが発生する可能性があります。