SleepTrackingManager
1. Create manager
Asleep.createSleepTrackingManager()
var config: Asleep.Config?
let delegate: AsleepSleepTrackingManagerDelegate = self
var manager: Asleep.SleepTrackingManager?
if let config {
manager = Asleep.createSleepTrackingManager(config: config,
delegate: delegate)
}
Property Name | Type | Description |
---|---|---|
config | Asleep.Config | Asleep.Config 객체를 입력 |
delegate | AsleepConfigDelegate | 결과와 에러를 받을 Delegate을 전달 |
AsleepSleepTrackingManagerDelegate
protocol AsleepSleepTrackingManagerDelegate {
func didCreate()
func didUpload(sequence: Int)
func didClose(sessionId: String)
func didFail(error: Asleep.AsleepError)
func didInterrupt()
func didResume()
func micPermissionWasDenied()
func analysing(session: Asleep.Model.Session)
}
-
didCreate()
tracking이 생성됩니다. -
didUpload()
오디오 데이터가 업로드됩니다.Property Name Type Description sequence Int epoch의 순서 -
didClose()
tracking이 종료됩니다.Property Name Type Description sessionId String Report 결과 조회를 위한 id 값 -
didFail()
에러로 인해 tracking이 종료됩니다Property Name Type Description error Asleep.AsleepError Error Codes -
didInterrupt()
통화 등 interrupt가 발생하여 tracking이 중단됩니다. -
didResume()
interrupt 요인이 사라져 tracking이 재개됩니다. -
micPermissionWasDenied()
마이크 권한 없이는 tracking을 시작할 수 없습니다. -
analysing()
현재까지 측정된 결과를 받아옵니다.Property Name Type Description session Asleep.Model.Session 측정 중 트래킹 세션 정보
2. Start sleep tracking
Asleep.SleepTrackingManager.startTracking()
var manager: Asleep.SleepTrackingManager?
manager?.startTracking()
수면 측정 테스트 시 안내 사항을 따라주시기 바랍니다.
Asleep의 수면 측정/분석 기능을 정확하게 테스트하려면, 테스트 환경 가이드를 반드시 따라주시기 바랍니다. 이 가이드를 준수하지 않은 환경에서 얻은 수면 분석 결과는 실제 수면 패턴과 정확하게 일치하지 않을 수 있음을 유의해주세요.
🔗 Test Environment Guideline 확인하기
3. Request the latest analyzed session
Asleep.SleepTrackingManager.requestAnalysis()
var manager: Asleep.SleepTrackingManager?
manager?.requestAnalysis()
4. Stop sleep tracking
Asleep.SleepTrackingManager.stopTracking()
var manager: Asleep.SleepTrackingManager?
manager?.stopTracking()
5. Data Type
Asleep.Model.Session
struct Session {
let id: String
let state: State
let startTime: Date
let endTime: Date?
let sleepStages: [SleepStage]
let osaStages: [OSAStage]
}
enum State {
case open
case closed
case complete
}
enum SleepStage {
case error
case wake
case light
case deep
case rem
}
enum OSAStage {
case stable
case unstable
}
Property name | Type | Description |
---|---|---|
id | String | 수면 세션 ID |
state | Asleep.Model.State | 수면 세션 상태 (OPEN , CLOSED , or COMPLETE ) |
startTime | Date | 세션 시작 시각 |
endTime | Date? | 세션 종료 시각 |
sleepStages | Array<Asleep.Model.SleepStage> | 수면 단계 |
osaStages | Array<Asleep.Model.OSAStage> | 수면 무호흡 단계 |
Updated over 1 year ago