이 섹션에서는 이동을 위해 차량을 준비하는 방법을 보여줍니다. 백엔드에서 차량을 이동과 일치시키려면 다음 각 단계를 완료해야 합니다.
리스너 설정
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());
위치 업데이트 사용 설정
리스너를 설정한 후 다음과 같이 위치 업데이트를 사용 설정합니다.
자바
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
Kotlin
val reporter = ...
reporter.enableLocationTracking()
업데이트 간격 설정
기본적으로 Driver SDK는 차량 상태가 ONLINE
일 때 10초 간격으로 위치 업데이트를 전송합니다. 이 간격은 reporter.setLocationReportingInterval(long, TimeUnit)
로 변경할 수 있습니다. 지원되는 최소 업데이트 간격은 5초입니다. 업데이트를 더 자주 하면 요청 속도가 느려지고 오류가 발생할 수 있습니다.
차량 상태를 온라인으로 설정
위치 업데이트를 사용 설정하면 차량 상태를 ONLINE
로 설정하여 Fleet Engine에서 SearchVehicles
쿼리에 차량을 사용할 수 있도록 할 수 있습니다. Driver SDK는 위치 업데이트와 함께 업데이트된 차량 상태를 전송합니다.
Driver SDK 또는 Fleet Engine 서버에서 직접 차량 상태를 설정할 수 있습니다. 자세한 내용은 차량 업데이트를 참고하세요.
다음 예는 Driver SDK에서 차량 상태를 온라인으로 설정하는 방법을 보여줍니다.
자바
RidesharingVehicleReporter reporter = ...;
reporter.enableLocationTracking();
reporter.setVehicleState(VehicleState.ONLINE);
Kotlin
val reporter = ...
reporter.enableLocationTracking()
reporter.setVehicleState(VehicleState.ONLINE)
StatusListener
는 차량 상태를 업데이트할 때 발생하는 오류도 보고합니다.