このセクションでは、スケジュールされたタスクに車両を準備する方法について説明します。バックエンドで車両をタスクに照合するには、次の各手順を完了する必要があります。
リスナーを設定する
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 秒です。更新頻度が高いと、リクエストの速度が低下し、エラーが発生する可能性があります。