准备好车辆

本部分介绍如何让车辆准备好执行预定的任务。您必须完成以下每个步骤,后端才能将车辆与任务进行匹配。

设置监听器

由于 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 秒。更新频率越高,请求速度越慢,错误也越多。