Skip to main content
이 문서는 v0.0.1 기준입니다. 판별 값은 OneS1ght.SDK_VERSION 으로 확인할 수 있습니다.
OneS1ght 는 앱 전체에 하나뿐인 object 진입점입니다 — 인스턴스를 만들지 않으며 모든 API 를 직접 호출합니다. 비동기 API 는 같은 이름으로 두 가지 형태가 있습니다 — Kotlin 은 suspend fun, Java 는 마지막 인자에 Callback<T> 를 받는 형태입니다. 아래 표는 Kotlin 형태로 적었습니다.

생명주기

initialize 의 파라미터: 기본 baseUrl 은 https://console.ones1ght.com/api/sdk/v1 입니다.
initialize 는 건물·층을 조회하지 않고, 기기 지원 여부도 확인하지 않습니다. 미지원 기기도 초기화는 통과하며(도면·구역 조회 가능), 측위 시작(begin())에서만 거절됩니다. 공간 설정은 setFloorMap 의 몫입니다.

측위 세션 — FloorSession

콜백

세션 콜백은 FloorSession 인스턴스에, 디버그 로그는 OneS1ght 에 답니다. 모든 콜백은 메인 스레드에서 호출됩니다. 리스너는 fun interface 라 Kotlin 에서는 ZoneListener { zone -> … }, Java 에서는 람다로 등록합니다.

ConfigChange — 콘솔 변경

LogLevel — 로그 등급

import co.onecheck.ones1ght.android.runtime.LogLevel 로 가져옵니다. 선언 순서대로 비교할 수 있어 level >= LogLevel.WARN 처럼 걸러낼 수 있습니다.
onTriggers 만 서버 응답입니다 — 네트워크가 끊기면 진입 판정은 오지만 트리거는 오지 않습니다.

공간 조회

엔드포인트 하나당 메서드 하나이며, 목록과 단건이 짝을 이룹니다. 모두 suspend 입니다.

층 지정

Android 는 층을 자동으로 인식하지 않습니다. setFloorMap 을 부르지 않으면 좌표가 나오지 않습니다(E3001, WARN).

프로필

고객사 회원 ID 는 서버로 오지 않습니다 — 매핑은 고객사만 보관합니다.

데이터 전송

좌표는 300건 또는 60초 중 먼저 도달하는 쪽에서 전송됩니다. 백그라운드 진입 시와 end() 시에도 남은 좌표를 보냅니다.

상태 조회

Java 에서는 getter 로 읽습니다 — OneS1ght.isInitialized(), OneS1ght.getDeviceAvailability(), OneS1ght.getGoogleMapKey().

에러 — SdkError

SdkError 는 SDK 자체가 던지는 5가지입니다. 통신 실패는 ApiError(co.onecheck.ones1ght.android.network)로 옵니다. 두 타입 모두 Exception 하위 클래스이며 .code.code 로 에러 코드 문자열을 꺼낼 수 있습니다.
측위 런타임(E4001E4004)과 공간 설정(E3001E3006), 권한(E2003)은 throw 되지 않고 로그로만 남습니다 — onDebugLog 또는 콘솔 로그 분석기에서 확인하세요. 전체 목록

모델

모델은 co.onecheck.ones1ght.android.model 패키지에 있습니다.

Coordinates — 실시간 좌표

Building · Floor — 건물·층

Locator · FloorLocators — 로케이터

Zone — 구역

판정 파라미터는 콘솔 공간 관리 → 구역 선택 → SDK 영역판정에서 구역마다 설정합니다 (설정 방법). Android 는 콘솔에서 받은 구역 도형을 기기에서 직접 대조해 판정합니다.
inCount 가 0 이면 진입이 영원히 확정되지 않아 구역 이벤트가 발생하지 않습니다. 콘솔에서 등록한 신규 구역은 기본 1 이며, 값이 0 인 옛 구역이 있다면 콘솔에서 확인하세요.

Trigger — 개인화 액션

MockPositioningProvider — 테스트용

co.onecheck.ones1ght.android.positioning 패키지에 있으며, session.begin(provider) 로 주입해 UWB 없이 SDK 파이프라인을 확인합니다. ZoneEventStatus 는 ENTER · DWELL · EXIT 입니다.

스레딩

  • Kotlin suspend API 는 어느 코루틴에서 불러도 됩니다. SDK 가 내부에서 스레드를 맞춥니다.
  • identify·empty·pause·resume 은 메인 스레드에서 호출합니다.
  • 콜백(onPosition 등)과 Java Callback 결과는 메인 스레드에서 호출됩니다 — UI 갱신을 바로 해도 안전합니다.

알아둘 제약

Android 의 UWB 측위는 포그라운드 전용입니다. 앱이 백그라운드로 가면 측위가 멈추고 남은 좌표를 전송한 뒤, 돌아오면 다시 시작합니다. 플랫폼 제약이라 SDK 가 우회할 수 없습니다.
좌표 버퍼는 메모리에 있습니다. 앱이 강제 종료되면 아직 올리지 못한 좌표는 사라집니다(E5006).