> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ones1ght.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Android SDK

## 0.0.11

* 측위 재개(resume) 때 엔진이 좌표를 못 내고 있으면(세션 오류 또는 5초 넘게 좌표 없음) 엔진을 다시 시작

## 0.0.10

* 측위 엔진은 앱이 화면에 있을 때만 동작하도록 변경 — 백그라운드에서 `begin()` 을 부르면 화면에 올라올 때 엔진 시작

## 0.0.9

* Galaxy S25+ 등 일부 기기에서 측위가 시작되지 않던 문제 수정(`E4001` 반복)

## 0.0.8

* SDK 의 Gson R8 규칙 범위를 SDK 내부로 축소 — 앱 Gson 모델은 앱에 규칙 직접 추가
* 연결이 끊길 때 보낸 요청이 다시 전송되어 이벤트·좌표·프로필이 중복되던 문제 수정

## 0.0.7

* **Breaking** 내부 타입 공개 해제: `ApiClient` 생성자 · `IdentityStore` · `SdkDefaults` · `MockPositioningProvider` 등
* **Breaking** `ConfigChange.Companion`(빈 companion) 삭제
* **Breaking** `PositioningProvider.applyZones` 를 공개 계약에서 제거 — 구역은 `apply(PositioningConfig(zones = …))` 로 전달
* **Breaking** `building(buildingId = …)` → `building(id = …)` (매개변수 이름만, 위치 인자는 그대로)
* **Breaking** 건물 없이 처음 `setFloorMap(floor)` 호출 시 `SdkError.BuildingNotSet`(`E3001`) 발생
* **Breaking** `SdkErrorCode` 등 enum 을 가르는 `when` 에 `else` 추가 필요
* `permissions(activity)` → `requestPermission(activity)`
* `getProfile()` → `fetchProfile()`
* `putProfile()` → `replaceProfile()`
* `send()` → `uploadPendingPositions()`
* `empty()` → `discardPendingPositions()`
* `ApiClient.DEFAULT_BASE_URL` → `OneS1ght.DEFAULT_BASE_URL`
* 옛 이름은 `@Deprecated` 로 계속 동작, 전체 목록은 [SDK CHANGELOG 0.0.7](https://github.com/onecheck-inc/OneS1ght-Android-SDK/blob/main/CHANGELOG.md#007--2026-10-02) 참고
* `FloorSession.onStopped` 추가 — 세션 종료 이유(`ENDED` · `ENGINE_FAILED`) 전달
* `FloorSession.onFloorDetected` 추가 — 엔진이 잡은 층 ID 전달
* 커스텀 provider 도 `onFloorDetected` · `onEmit` 으로 구역 콜백 지원
* 엔진이 꺼지면 자동 재시작, 실패 시 세션 종료 후 `onStopped(ENGINE_FAILED)`
* 층 없이 `begin()` 해도 `E3001` 을 서버로 올리지 않도록 변경
* `identify` 를 `initialize` 보다 먼저 호출 지원
* 일시정지가 백그라운드에 다녀와도 유지되도록 변경(iOS 와 같음)
* `ApiError.message` 를 영어 + 에러 코드로 변경
* `initialize` 의 `baseUrl` 을 공간 조회에도 사용하도록 변경
* 응답 항목 하나가 망가지면 목록 전체가 실패하던 문제 수정
* `refreshZones()` 시 체류 시간이 초기화되던 문제 수정
* 좌표 전송 중 `empty()` 호출 시 앱 종료되던 문제 수정
* `reset()` 뒤 옛 건물로 층을 조회하던 문제 수정

## 0.0.6

* `SdkErrorCode` 를 `else` 없이 가르는 `when` 은 `BLUETOOTH_OFF` 가지 추가 필요
* Bluetooth 꺼짐을 권한 거부(`E2003`)와 나눠 `E2004` 로 기록(iOS 와 같음)

## 0.0.5

* `UwbPositioningProvider(context)` 로 앱이 측위 provider 직접 생성 지원
* `UwbPositioningProvider.isSupported(context)` 로 기기 측위 가능 여부 확인 추가
* provider 관찰 상태(`phase` · `latestPosition` · `detectedFloorId` 등)와 `StateFlow` 추가
* provider 훅(`onFloorDetected` · `onEngineError` · `onZoneEvent` · `onLog`) 추가
* `startDetection()` · `stopDetection()` 으로 엔진만 먼저 기동 지원
* `kotlinx-coroutines-core`(1.9.0)를 api 의존으로 변경
* iOS 와 달리 `license` 미노출 — 엔진 라이선스는 SDK 가 콘솔 값으로 설정

## 0.0.4

* 패키지 `minSdk` 를 37 → 26(Android 8.0)으로 낮춤 — 앱 `minSdk` 되돌려도 됨
* Android 17 미만에서는 측위만 꺼지고 앱은 정상 동작(`E2001`)

## 0.0.3

* 패키지 `minSdk` 를 37 로 올림 — 0.0.4 이상 사용 권장
* 측위 엔진을 iOS(0.1.23)와 같은 통합 엔진으로 교체
* 엔진이 BLE 로 층을 스스로 찾음 — `setFloorMap` 은 구역 이벤트용 선택 사항
* 구역 판정을 엔진 지오펜스로 변경 — 콘솔 존 판정 파라미터 미사용
* 권한 요청에 `BLUETOOTH_SCAN` 추가
* 로그 코드 `E3007` · `E3008` · `E3009` · `E4004` 추가, `E4003` 미발생

## 0.0.2

* 배포 좌표를 `com.ones1ght.sdk:android` 로 변경 — `mavenCentral()` 만 필요
* R8/ProGuard 릴리즈 빌드 실패 가능 — 0.0.4 이상 사용 권장
* Maven Central 첫 배포 · 측위 엔진 AAR 내장
* `-sources.jar` · `-javadoc.jar` 함께 배포

## 0.0.1

* Android SDK 첫 공개 — iOS SDK(0.1.23)와 같은 기능·서버 계약
* Kotlin `suspend` 와 Java `Callback<T>` 지원
* 측위는 Android 17(API 37) 이상 · UWB DL-TDoA 지원 기기에서 동작
* iOS 와 달리 `initialize` 에 `Context` 인자 필요
* iOS 와 달리 권한 요청에 `Activity` 인자 필요


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.