카카오내비 길찾기 sdk (내장형) 안내 종료 버튼

카카오내비 SDK와 관련된 질문과 답변을 올리는 카테고리입니다.

이 페이지를 참고하여 안내 종료 버튼을 눌렀을 때 경로 안내를 중단시키도록 코드를 작성해보았는데
아무것도 실행되지 않습니다…
image


image

앱 아이디는 1101458 이고, sdk 버전은 1.9.4입니다!

안녕하세요, 카카오모빌리티 기술 제휴 담당자입니다. 아래 내용 확인 부탁드립니다.

경로요청 성공 후 KNSDK.InitWithGuidance 호출 시:

  1. 내비게이션 화면이 정상적으로 표시되고 길안내가 제대로 작동하는지,
  2. 내비게이션 주행 화면의 우측 하단에 있는 “메뉴” 버튼을 누른 후 "길안내 종료"를 선택하셨는지 확인 부탁드립니다.

참고로, KNNaviView.naviViewGuideEnded() 함수는 목적지까지의 주행이 완료되었을 때 주행 종료에 대한 콜백을 전달받도록 설계되어 있습니다.

감사합니다.

  1. 화면도 잘 나오고 안내 종료를 선택했는데 종료되지 않습니다. 따로 작성해야하는 함수가 있나요?


  1. 이 두 함수의 차이를 알려주세요.

guidanceGuideEnded - 경로안내가 종료되었을 때 호출되며,
해당 내용을 아래와 같이 KNNaviView에 넘겨주시면 됩니다
(KNGuidance interface 입니다)

override fun guidanceGuideEnded(aGuidance: KNGuidance) { KNNaviView.guidanceGuideEnded(aGuidance) }

naviViewGuideEnded - 경로안내, 안전운전 종료가 되는 경우 호출됩니다
(KNNaviView interface 입니다)아래와 같이 확인 부탁드립니다

  • 안내 종료 선택 후, guidanceGuideEnded로 이벤트가 들어오는 지 확인
  • guidanceGuideEnded로부터 받은 정보를 위와 같이 naviView에 전달
  • 이 후, naviViewGuideEnded에 이벤트가 발생하는지 확인
  • 해당 함수 내에서 Activity 종료(Activity finish)하시면 됩니다.

(naviViewGuideEnded로 이벤트가 들어오면 KNSDK 내부적으로 길안내 종료처리가 된 것으로 보시고
화면을 제거하시면 됩니다.)

감사합니다.

image
이렇게 작성해보았는데 안내 종료 선택 시 로그가 뜨지 않습니다.

guidanceGuideEnded 내용에 혼동을 드린 것 같습니다.

guidanceGuideEnded - 경로 안내 종료(목적지 도착) 하였을 때 호출됩니다.
naviViewGuideEnded - 안내 종료 시 호출되며, 별도의 동작없이 화면을 제거하시면 됩니다.

감사합니다.

그럼 안내 종료 버튼을 눌렀을 때 이벤트를 다루는 함수가 따로 있을까요?
현재는 아무런 이벤트가 일어나지 않습니다…

KNNaviView_GuideStateDelegate.naviViewGuideEnded()
주행 화면에서 “길 안내 종료” 또는 안전 운행 모드에서 우측 하단의 “X” 를 누르실 경우
해당 함수가 호출이 되도록 되어있습니다

위에 올려주셨던 영상으로 봤을 때는
해당 delegate에 연결이 정상적으로 이루어지지 않은 것으로 보입니다
(처음 문의주셨던 코드처럼 하신다면 (knNaviView.guideCancel), 안전 운행 모드로 넘어가야 합니다)

이외에 다른 Delegate도 동작이 정상적으로 되시는지 확인이 필요할 것 같습니다.

감사합니다.

knNaviView.guideStateDelegate = this
이 코드를 추가하여 delegate 연결로 해결했습니다. 감사합니다.