본문으로 건너뛰기

안드로이드 SDK 테스트 가이드 문서

시작하기

  • 이 문서는 디버깅과 테스트를 위한 loplat SDK의 적용과 사용법을 설명합니다.
  • 앱을 모바일 디바이스에서 원활하게 테스트하기 위하여 "위치설정 ON", "위치권한 항상허용", "배터리 사용량 최적화 안 함" 으로 되어 있는지 꼭 체크해주세요.

네이버 지도 버전 3 적용하기

"네이버 지도 SDK v3 요구 설정값"

네이버 지도 V3에 요구하는 SDK version 설정값은 아래와 같습니다.

compileSdkVersion 28
minSdkVersion 15

테스트 모드 적용 및 설정하기

테스트 모드 사용을 위한 SDK 버전 설정

  • compileSdkVersion, minSdkVersion 을 아래와 같이 선언을 합니다.

    • 네이버 지도 V3 적용을 위해 compileSdkVersion 28 으로 선언이 필요합니다.

    • 테스트 모드 시 화면에 보이는 플로팅 뷰 동작을 위해 minSdkVersion 19(이상) 선언이 필요합니다.

      compileSdkVersion 28
      minSdkVersion 19

테스트 모드 필수 권한

  • 테스트 모드 동작을 위해 아래의 권한들이 허용되어야 합니다.

    • 위치 권한: Wi-Fi scanning 결과, GPS (위경도) 값을 반환 받기 위함

    • 외부 저장소 쓰기 권한: SDK 동작 로그를 파일에 쓰기 위함

    • 계정 정보 읽기: 파일 로그를 메일로 전송할 때 사용

    • 윈도우 오버레이: Floating view를 화면에 띄우기 위함 (아래 사진 참고)

      • 다른 앱 위에 표시 되는 앱 권한 허용

"권한 선언"

SDK 내 AndroidManifest.xml 가 선언되어 있으므로 별도의 선언은 따로 하지 않아도 됩니다.


테스트 모드 사용하기

  • 테스트 모드 설정 방법

    • maven 사용 하는 경우

      • 프로젝트 내, 최상위 build.gradle 에 아래의 코드 추가

        allprojects {
        repositories {
        jcenter()
        mavenCentral()
        maven { url "https://maven.loplat.com/artifactory/plengi-debug"}
        google()
        }
        }
      • loplat SDK Dependency 추가 하기

        dependencies {
        implementation 'com.loplat:placeengine:2.1.1.9.6'
        }

    • AAR을 사용하는 경우

      • loplat android SDK AAR 파일을 프로젝트 폴더 내의 라이브러리(libs) 폴더 복사

        repositories {
        flatDir { dirs 'libs' }
        }

        dependencies {
        implementation fileTree(dir: 'libs', include: ['*.aar'])
        }

테스트 모드 구성

테스트 모드는 SDK 동작 log 화면과 장소 인식 결과 확인 화면 2가지로 구성 되어 있습니다.
테스트 모드의 화면은 기기 화면의 앱 런처 아이콘 을 누르면 보실 수 있습니다.

SDK 동작 로그 화면

SDK log 화면은 5가지 기능 버튼과 리스트 화면으로 구성되어 있습니다.

  • 1번 : 현재 위치 확인하기

    • 현재 위치에서 Wi-Fi scanning 결과를 통해 위치 확인
  • 2번 : 로그 파일 메일로 보내기

    • SDK 동작 로그를 원하는 메일 주소로 전송 가능
  • 3번 : 로그 파일 삭제 하기

  • 4번 : TAG, 검색어로 로그 필터링

  • 5번 : 로그 검색

  • 6번 : 위치 결과 확인

  • Log 목록

    • Log 목록 화면은 SDK 동작 Log와 장소 인식 결과 위치를 확인 할 수 있는 지도 버튼으로 이루어져 있음

    • 로그 설명

      • [BG]/[FG] : foreground, background wifi scanning 당시의 앱 상태 값
      • 이벤트 로그 - [ENTER]/[NEARBY]: 인식 장소 결과 상태값
      [ENTER]로플랫,양화타워(12345),6F,0.637/0.637 //[Event 타입(enter/nearby)] 장소명,지점명/태그(장소ID), 층정보, 인식 정확도
      [14]테헤란로,서울(37.499387, 127.034331) //[Area ID], 상권(지역)명(위도,경도)
      Location) 37.4994211, 127.0340667, 1, 14.923, loplat //위도, 경도, 층, 정확도, provider
장소 인식 결과 확인

SDK를 통해 인식 된 장소의 위치를 (네이버) 지도를 통해 확인 할 수 있습니다.

테스트하기

WiFi 기반의 기본동작 테스트

장소 인식 시나리오

Case 1. 매장(장소) 방문 인식 (IN)

A 매장에서 약 4분 정도 머무름 -> A 장소 인식 & 장소 인식 Event 발생

Case 2. 매장 주변 인식 (NEARBY)

A 매장(장소) (밖) 20m 이내 주변 약 4분 정도 머무름 -> A 장소 Nearby Event 발생

Case 3. 다른 매장 이동

A 장소에서 약 4분 정도 머무름 -> A 장소 In (ENTER) 인식 -> B 장소로 이동 -> B 장소에서 약 4분 정도 머무름 -> B 장소 인식

장소 인식 결과

테스트 하기 전, 꼭 아래의 내용을 숙지 부탁드립니다.

  1. 매장(장소) 인식 결과

    • 매장 인식이 된 경우

      • [ENTER/NEARBY] : 장소 인식 결과 상태값
      • ENTER: 매장(장소) 내 인식 성공
      • NEARBY: 해당 장소 20m 이내 주변으로 위치 인식
    • 매장 인식이 안 된 경우 (실패)

      • Event는 전달 되었으나 (인식 로그 1번이 없는 경우, 이미지 참고) 상권, 복합몰, Geofence 등이 인식 된 경우
      • 위치 인식 실패 -> 위치 요청한 장소가 매장, 상권, 복합몰, Geofence 중 하나도 인식 되지 않은 경우
      • response fail: Location acquisition fail 로그로 확인 할 수 있음
  2. 상권 인식 결과

    • 위치 인식 요청한 장소가 상권에 포함되면 아래와 같이 event로 전달됩니다.

      • [상권ID] 상권명, 도시명(위치요청 당시 기기 위경도값)

        [7]강남대로, 서울(37.490719941, 127.030670166)
  3. 복합몰 인식 결과

    • 위치 인식 요청한 장소가 복합몰 내이면 아래와 같이 event로 전달됩니다.

      • [복합몰ID] 복합몰 명, 지점명, 카테고리

        [1295]로플랫복합몰,,Theme Park
  4. Geofence 인식 결과

    • 위치 인식 요청한 장소가 설정하신 Geofence에 해당되면 (이미지 참고)로그 4와 같이 event로 전달됩니다.
      • (location: 요청한 기기 위경도 값), [[gfid, fence name, client_code], ....]
  5. 위치 요청한 기기의 위경도 정보

    • 위치 인식 요청한 기기의 위경도 정보가 (이미지 참고)로그 5와 같이 event로 전달됩니다.
      • 위경도, 층, 정확도, provider

체크리스트

SDK가 정상적으로 동작하기 위해 적용시 필수로 확인해야 될 항목들입니다.

아래와 항목과 다르게 적용하면 SDK가 정상적으로 동작하지 않습니다. SDK 적용 후에 꼭 확인 부탁드립니다.

No.QuestionY/Ncomment
0적용한 SDK Version은 로플랫 개발자
페이지 홈에 적혀있는 (최신)버전 인가?
1SDK stop 호출은 위치약관동의 철회 시,
로플랫 서비스 만료 시 외에 임의로 호출하는 부분
이 없는가?
start전에 stop을 호출하면 안됩니다.
있다면 로플랫과 협의 부탁드립니다.
2사용자의 위치약관동의한 경우만 SDK start를 호출하는가?
3로플랫 개발자 페이지에서
언급하는 API 외에 사용하는 API가 있는가?
있다면 로플랫과 협의 부탁드립니다
4echo_code 란에 전화번호, 이메일 주소 같은 개인정보가 들어가지 않는가?echo_code 회원을 구별할 수 있는 난수값을 넣어주세요
5echo_code 란에 항상 동일한 상수값이 들어가지 않는가?echo_code가 필요없다면 null을 입력해주세요.

FAQ

"1. SDK에서 START 를 호출하였음에도 불구하고 아무런 동작을 하지 않습니다."
  • 모바일 핫스팟 OFF 상태 확인 부탁드립니다.

    "모바일 핫스팟 (테더링)이 켜져있을 경우, SDK가 작동하지 않습니다."

    정상적인 Wi-Fi 스캔 값을 받지 못하므로 SDK 내에서 모바일 핫스팟 상태를 체크합니다.

  • Wi-Fi 찾기 상태 확인 하는 방법 (삼성 갤럭시 폰 기준)

    • 설정 -> 위치 -> 위치 서비스 -> Wi-Fi 찾기 (아래 이미지 확인)
  • 위치 권한 상태 확인하는 방법

    • 설정 -> 애플리케이션 -> 어플 선택 -> 권한 -> 허용된 권한 확인 (아래 이미지 확인)
"2. 장소 인식 테스트 하는 방법은 무엇인가요?"

한 장소에서 4분 이상(활동감지 권한 ON 일 경우 1분 이상) 머무르면 장소 인식 결과를 확인할 수 있습니다. 다만, Android OS 버전에 따라 다소 차이가 있으니 참고 바랍니다.

"3. Wi-Fi 찾기 기능을 꺼도 SDK가 동작하나요?"

정확한 매장 인식을 위해서 Wi-Fi 찾기 기능 켜두시는 것을 권장합니다.