안녕하세요. 현재 KNSDK 1.9.2를 사용중입니다.
현재 안드로이드에서 로컬 지도 다운로드 기능을 사용중인데 지도파일 전체를 다운 받고 SDK 이니셜라이즈할 때 지정해준 경로에 map 폴더에 로컬지도 파일(Ex 620MB)이 저장된 것을 확인하고 앱을 종료 후 다시 실행 시 해당 경로에 지도데이터 파일이 삭제가 되는 것을 확인했습니다.
로컬 다운로드 이후 어딘가에 파일 적용시키고 삭제되는 정상 시나리오인가요?
두번째로 파일다운로드시작 후 바로 취소(다운로드 리스너 onStop)호출 시 Exception 발생하는 문제가 있습니다.
이어받기 후 빠르게 취소(다운로드 리스너 onStop)호출을 해도 같은 Exception이 떨어지더라고요. 검토 부탁드립니다.
세번째로는 맵다운로드 리스너를 해제를 해주고 싶어도 해제하는 기능이 없는 것 같습니다.
onProgress()가 호출 되기전 취소(다운로드 리스너 onStop)호출 시 백그라운드에서는 뒤늦게 onProgress()가 들어오는 것으로 확인되어서 다운로드 정지에 문제가 있는 것 같아서 문의 드립니다.
문의 사항 읽어주셔서 감사합니다.
안녕하세요. 카카오모빌리티의 기술 제휴 담당자입니다.
문의 주신 내용으로는 정확한 답변이 어려워 아래 내용 확인이 필요합니다.
-
파일 삭제 관련: 파일 삭제가 데이터베이스(DB) 파일인지, 또는 다른 파일 형식인지 확인이 필요합니다. 다른 파일이라면 파일이 삭제되는 것이 맞습니다. Realm 파일은 일반적으로 .realm
형식으로 생성됩니다. DB 파일 자체가 사라진 경우라면, DB 파일을 지우는 함수인 clearDBFile
을 사용했는지 확인이 필요합니다.
-
바로 취소 관련: 바로 취소하는 경우 발생하는 Exception이 onError에 담겨져있는 메시지를 말씀하는 것인지요? 만약 바로 취소 시 201에러가 떨어진다면, 네트워크 요청을 강제로 종료한것이라 '파일 주소를 찾을 수 없다’는 에러를 띄우도록 되어있습니다. 이 경우엔 무시하셔도 됩니다.
-
onProgress가 onStop 이후에 불리는 이유는 네트워크 인포 파일을 받고 난 뒤의 시점과 겹쳐지면 이미 받은 인포 파일을 확인하고 제거 하는 과정까지 모두 progress로 보내고 있습니다. 이는 progressType으로 구분하여 확인할 수 있습니다.
감사합니다.
안녕하세요. 저번 답변확인 후 한동안 지도다운로드 부분을 신경쓰지 않고 있다가 개발하게 되어서 문의드립니다.
위에 답변 주신 1번항목 날짜가 붙은 파일이 다운로드 중 생성되었다가 map.realm으로 변경되는 것으로 확인했습니다.
2번항목도 해당 순서로 호출하니 정상작동되는 것으로 확인했습니다.
새로 질문드릴게 생겨서 문의 남깁니다.
-
지도 다운로드 완료 후 날짜map.realm파일이 map.realm파일로 변경되는 것도 확인하고 파일용량도 지도를 다운받은 사이즈인 것으로 확인 했습니다.
하지만 앱 종료 후 재실행 시 map.realm파일의 용량이 3.7MB로 변경되어있고 지도 다운로드를 시작하면 다시 처음부터 다운로드를 받고 있습니다. map.realm파일의 용량이 지도 다운로드 완료 상태의 용량일때 시작 시 금방 onFinish()가 호출되는 것으로 보아 문제가 있는 것으로 확인됩니다. clearDB는 호출하지 않았습니다.
-
지도다운로드 완료 후 onFinish()가 호출되면 setMapLoadMode로 KNMapMode.KNLocal_Map으로 설정되게 해두었는데 그 상태에서 다시 KNMapMode.KNCloud_Map으로 변경 시 map.realm_rollback의 용량이 map.realm용량으로 변경되더라구요. 이는 정상 시나리오로 생각이 드는데 다시 이 상태에서 KNLocal_Map으로 변경하려는데 KNSDK.localMapDownload()를 사용해야할 지 setMapLoadMode()로 KNLocal_Map으로 설정해야만 하는지 알려주실 수 있나요?
바쁘신데 답변 감사합니다.