시스템 요구사항
측위정보 수신 미지원 기기인 경우 SDK 동작을 중지하며 운영중인 앱에 영향을 미치지 않습니다.
SDK 설치
1
2
Dart 코드에서 가져옵니다.
Dart
iOS 설정
1
Swift Package Manager를 설정합니다.
2
배포 타깃 올리기
ios/Runner.xcodeproj 의 IPHONEOS_DEPLOYMENT_TARGET 을 18.0 으로 올립니다.3
권한 문구 넣기
Android 설정
1
MainActivity 바꾸기
SDK 의 권한 요청에는
ComponentActivity 가 필요하므로 MainActivity 를 FlutterFragmentActivity 로 바꿉니다.MainActivity.kt
2
빌드 버전 맞추기
android/app/build.gradle.kts
SDK 초기화
측위 엔진을 가동하기 위한 초기화 작업을 시작합니다.
모든 호출은
Future 이고, 이벤트는 Stream 입니다.
Dart
프로필
사용자(계정 또는 기기) 한 명의 동선은 프로필 단위로 관리됩니다.프로필 ID 는 고유하며, 분실하면 다시 찾을 수 없으니 보관에 주의해 주세요.
프로필 생성
새 프로필을 만들면 프로필 ID 를 돌려받습니다. 속성은 레포트 · 지표의 세그먼트로 쓰이며 Key-Value 에 제약이 없습니다.발급받은 ID 는 앱(또는 고객사 서버)에 보관해 두고, 매 실행마다 측위 전에
identify 로 연결합니다.
Dart
프로필 정보 조회
프로필 ID를 통해 저장된 개인화 속성을 조회합니다.Dart
프로필 정보 수정
개인화 프로필 속성을 통째로 교체됩니다. 수정 후 기존 값은 삭제되며 되돌릴 수 없습니다.Dart
프로필 삭제
개인화 프로필 속성을 삭제합니다. 삭제된 속성은 되돌릴 수 없습니다.Dart
건물, 층 선택
측위좌표를 수신하려면 로케이터가 있는 건물과 층을 선택해야 합니다.BLE 수신으로 선택
SDK 의 측위 엔진이 로케이터의 BLE 신호로 층을 찾으면onFloorDetected 로 층 ID 가 옵니다. 층을 잃으면
null 이 옵니다.
Dart
수동으로 선택
사람이 층을 고르게 하거나 측위 전에 지도를 먼저 그릴 때는 건물과 층을 직접 지정합니다.Dart
측위정보 실시간 수신
floorSession() 으로 측위 세션을 얻고, begin() 으로 시작해 end() 로 종료합니다. 위치는
onPosition 으로 받으며, 좌표(미터)가 최대 초당 4회 옵니다.
Dart
구역 이벤트
콘솔 공간 관리에서 그린 구역의 진입 · 이탈 · 체류 이벤트를 받습니다. 판정은 기기 안에서 이루어져 바로 옵니다.구역에 걸린 시책(쿠폰 · 사이니지 등)은 서버가 매칭해
onTriggers 로 전달됩니다.이벤트는 모두
Stream 이라 여러 곳에서 동시에 들어도 됩니다.
Dart
구역정보 업데이트
콘솔에서 구역 정보가 바뀔 때onConfigChanged 가 흘러옵니다. 연달아 오면 1초쯤 모아서 refreshZones() 를 한 번만 부릅니다.
Dart
도면 표시
로케이터와 관련된 도면과 사용자의 현재 위치를 표시할 수 있습니다.도면 설정을 하지 않을 경우 배경은 격자로 표시됩니다.
Dart
기타 옵션
데이터 전송 제어
좌표는 300건이 채워지거나 전송 후 60초 경과 시 자동 전송됩니다. 단 앱이 강제 종료되면 좌표는 폐기됩니다.Dart
세션 재설정
현재 세션을 폐기합니다. 새 세션은 만들지 않으니, 다시 쓰려면initialize 를 호출하세요(다른 키로도 가능합니다).
Dart
측위 종료 처리
측위 엔진이 종료된 경우onStopped 이벤트가 실행되며 측위 가능 상태로 전환 가능합니다.
Dart
지원 기기 확인
deviceAvailability 는 네트워크(인터넷) 연결 없이 바로 확인 가능하며측위를 지원하지 않는 기기라도 앱의 동작에 영향을 미치지 않습니다.
Dart
부록
권한 요청
requestPermission() 은 SDK 사용에 필요한 모든 권한을 한 번에 요청합니다. 사용자가 한 번이라도 권한요청을 거절 할 시 앱에서 재요청 할 수 없으니 설정 앱으로 이동하도록 유도하세요.
Dart
디버그 로그
디버그 로그 확인시 SDK 초기화문 선언(initialize) 직전에 등록해 주세요. 로그는
flutter run 을 실행한 터미널이나 IDE 의 디버그 콘솔에 찍힙니다. 기기에서 직접 수집하는 방법은 iOS · Android 가이드를 참고하세요.
사용자 측위정보는 시뮬레이터 · 에뮬레이터에서 확인할 수 없습니다.
Dart
setLanguage 로 정합니다 — 'ko' · 'ja' · 'en', null 이면 기기 언어를 따릅니다.
Dart
네이티브 SDK 와 다른 점
문제 해결하기
에러 코드
개발 중 발생하는 오류 내용을 안내합니다.