이 섹션에서는 차량을 이동할 준비를 하는 방법을 보여줍니다. 백엔드에서 차량을 이동에 매칭하려면 다음 단계를 모두 완료해야 합니다.
리스너 설정
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
는 차량 상태를 업데이트할 때 발생하는 오류도 보고합니다.