本部分介绍了如何让车辆为计划任务做好准备。您必须 完成以下每个步骤,后端才能将车辆与 任务进行匹配。
设置监听器
由于 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 秒。更频繁的更新可能会导致请求速度变慢并出现错误
。