These docs are for v1.0. Click to read the latest docs for v2.0.

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 NameTypeDescription
configAsleep.ConfigAsleep.Config 객체를 입력
delegateAsleepConfigDelegate결과와 에러를 받을 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)
}
  1. didCreate()
    tracking이 생성됩니다.

  2. didUpload()
    오디오 데이터가 업로드됩니다.

    Property NameTypeDescription
    sequenceIntepoch의 순서
  3. didClose()
    tracking이 종료됩니다.

    Property NameTypeDescription
    sessionIdStringReport 결과 조회를 위한 id 값
  4. didFail()
    에러로 인해 tracking이 종료됩니다

    Property NameTypeDescription
    errorAsleep.AsleepErrorError Codes
  5. didInterrupt()
    통화 등 interrupt가 발생하여 tracking이 중단됩니다.

  6. didResume()
    interrupt 요인이 사라져 tracking이 재개됩니다.

  7. micPermissionWasDenied()
    마이크 권한 없이는 tracking을 시작할 수 없습니다.

  8. analysing()
    현재까지 측정된 결과를 받아옵니다.

    Property NameTypeDescription
    sessionAsleep.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 nameTypeDescription
idString수면 세션 ID
stateAsleep.Model.State수면 세션 상태 (OPEN, CLOSED, or COMPLETE)
startTimeDate세션 시작 시각
endTimeDate?세션 종료 시각
sleepStagesArray<Asleep.Model.SleepStage>수면 단계
osaStagesArray<Asleep.Model.OSAStage>수면 무호흡 단계