안드로이드 SDK 테스트 가이드 문서
시작하기
- 이 문서는 디버깅과 테스트를 위한 loplat SDK의 적용과 사용법을 설명합니다.
- 앱을 모바일 디바이스에서 원활하게 테스트하기 위하여 "위치설정 ON", "위치권한 항상허용", "배터리 사용량 최적화 안 함" 으로 되어 있는지 꼭 체크해주세요.
네이버 지도 버전 3 적용하기
- 위치 인식 결과를 확인하기 위하여 네이버 지도 적용이 필요합니다.
- 적용 방법은 네이버 지도 적용 가이드 (https://navermaps.github.io/android-map-sdk/guide-ko/) 참고하시면 됩니다.
네이버 지도 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 기반의 기본동작 테스트
장소 인식 시나리오
A 매장에서 약 4분 정도 머무름 -> A 장소 인식 & 장소 인식 Event 발생
A 매장(장소) (밖) 20m 이내 주변 약 4분 정도 머무름 -> A 장소 Nearby Event 발생
A 장소에서 약 4분 정도 머무름 -> A 장소 In (ENTER) 인식 -> B 장소로 이동 -> B 장소에서 약 4분 정도 머무름 -> B 장소 인식
장소 인식 결과
테스트 하기 전, 꼭 아래의 내용을 숙지 부탁드립니다.
-
매장(장소) 인식 결과
-
매장 인식이 된 경우
[ENTER/NEARBY]
: 장소 인식 결과 상태값- ENTER: 매장(장소) 내 인식 성공
- NEARBY: 해당 장소 20m 이내 주변으로 위치 인식
-
매장 인식이 안 된 경우 (실패)
- Event는 전달 되었으나 (인식 로그 1번이 없는 경우, 이미지 참고) 상권, 복합몰, Geofence 등이 인식 된 경우
- 위치 인식 실패 -> 위치 요청한 장소가 매장, 상권, 복합몰, Geofence 중 하나도 인식 되지 않은 경우
response fail: Location acquisition fail
로그로 확인 할 수 있음
-
-
상권 인식 결과
-
위치 인식 요청한 장소가 상권에 포함되면 아래와 같이 event로 전달됩니다.
-
[상권ID] 상권명, 도시명(위치요청 당시 기기 위경도값)
[7]강남대로, 서울(37.490719941, 127.030670166)
-
-
-
복합몰 인식 결과
-
위치 인식 요청한 장소가 복합몰 내이면 아래와 같이 event로 전달됩니다.
-
[복합몰ID] 복합몰 명, 지점명, 카테고리
[1295]로플랫복합몰,,Theme Park
-
-
-
Geofence 인식 결과
- 위치 인식 요청한 장소가 설정하신 Geofence에 해당되면 (이미지 참고)로그 4와 같이 event로 전달됩니다.
- (location: 요청한 기기 위경도 값), [[gfid, fence name, client_code], ....]
- 위치 인식 요청한 장소가 설정하신 Geofence에 해당되면 (이미지 참고)로그 4와 같이 event로 전달됩니다.
-
위치 요청한 기기의 위경도 정보
- 위치 인식 요청한 기기의 위경도 정보가 (이미지 참고)로그 5와 같이 event로 전달됩니다.
- 위경도, 층, 정확도, provider
- 위치 인식 요청한 기기의 위경도 정보가 (이미지 참고)로그 5와 같이 event로 전달됩니다.
체크리스트
SDK가 정상적으로 동작하기 위해 적용시 필수로 확인해야 될 항목들입니다.
아래와 항목과 다르게 적용하면 SDK가 정상적으로 동작하지 않습니다. SDK 적용 후에 꼭 확인 부탁드립니다.
No. | Question | Y/N | comment |
---|---|---|---|
0 | 적용한 SDK Version 은 로플랫 개발자페이지 홈에 적혀있는 (최신)버전 인가? | ||
1 | SDK stop 호출은 위치약관동의 철회 시, 로플랫 서비스 만료 시 외에 임의로 호출하는 부분 이 없는가? | start전에 stop을 호출하면 안됩니다. 있다면 로플랫과 협의 부탁드립니다. | |
2 | 사용자의 위치약관동의한 경우만 SDK start를 호출하는가? | ||
3 | 로플랫 개발자 페이지에서 언급하는 API 외에 사용하는 API가 있는가? | 있다면 로플랫과 협의 부탁드립니다 | |
4 | echo_code 란에 전화번호, 이메일 주소 같은 개인정보가 들어가지 않는가? | echo_code 회원을 구별할 수 있는 난수값을 넣어주세요 | |
5 | echo_code 란에 항상 동일한 상수값이 들어가지 않는가? | echo_code가 필요없다면 null을 입력해주세요. |
FAQ
-
모바일 핫스팟 OFF 상태 확인 부탁드립니다.
"모바일 핫스팟 (테더링)이 켜져있을 경우, SDK가 작동하지 않습니다."정상적인 Wi-Fi 스캔 값을 받지 못하므로 SDK 내에서 모바일 핫스팟 상태를 체크합니다.
-
Wi-Fi 찾기 상태 확인 하는 방법 (삼성 갤럭시 폰 기준)
- 설정 -> 위치 -> 위치 서비스 ->
Wi-Fi 찾기
(아래 이미지 확인)
- 설정 -> 위치 -> 위치 서비스 ->
-
위치 권한 상태 확인하는 방법
- 설정 -> 애플리케이션 -> 어플 선택 -> 권한 -> 허용된 권한 확인 (아래 이미지 확인)
한 장소에서 4분 이상(활동감지 권한 ON 일 경우 1분 이상) 머무르면 장소 인식 결과를 확인할 수 있습니다. 다만, Android OS 버전에 따라 다소 차이가 있으니 참고 바랍니다.
정확한 매장 인식을 위해서 Wi-Fi 찾기 기능 켜두시는 것을 권장합니다.