SleepTrackingManager

1. Create manager

Asleep.createSleepTrackingManager

  • Sleep Tracking을 관리하는 SleepTrackingManager를 생성합니다.
fun createSleepTrackingManager(
    asleepConfig: AsleepConfig?, 
    trackingListener: SleepTrackingManager.TrackingListener
): SleepTrackingManager?
Parameter NameTypeDescription
asleepConfigAsleepConfig?initAsleepConfig 호출에서 콜백받은 설정 값을 입력
trackingListenerTrackingListenerSleep Tracking에 대한 상태를 콜백 받을 수 있는 리스너

Asleep.SleepTrackingManager.TrackingListener

interface TrackingListener {
    fun onCreate()
    fun onUpload(sequence: Int)
    fun onClose(sessionId: String)
    fun onFail(errorCode: Int, detail: String)
}
  • Sleep Tracking이 시작되면 onCreate()가 호출되고 30초마다 onUpload()가 호출됩니다.
Parameter NameTypeDescription
sequenceInt0부터 시작하여 30초마다 1씩 증가된 값
  • Sleep Tracking이 종료되면 onClose()가 호출됩니다.
Parameter NameTypeDescription
sessionIdStringReport 결과 조회를 위한 id 값
  • 실패 시, onFail()이 호출됩니다.
Parameter NameTypeDescription
errorCodeIntAsleepErrorCode 참조
detailStringerrorCode에 관련된 메세지

2. Start sleep tracking

Asleep.SleepTrackingManager.startSleepTracking

  • Sleep Tracking을 시작합니다. 파라메터 없이 호출하면 isPrivacySensitive는 true로 셋팅됩니다.(권장)
fun startSleepTracking()
// or
fun startSleepTracking(isPrivacySensitive = true)
Parameter NameTypeDescription
isPrivacySensitiveBooleantrue이면 PrivacySensitive 활성화, false 이면 비활성화

🚧

수면 측정 테스트 시 안내 사항을 따라주시기 바랍니다.

Asleep의 수면 측정/분석 기능을 정확하게 테스트하려면, 
테스트 환경 가이드를 반드시 따라주시기 바랍니다. 이 가이드를 준수하지 않은 환경에서 얻은 수면 분석 결과는 실제 수면 패턴과 정확하게 일치하지 않을 수 있습니다.

🔗 Test Environment Guideline 확인하기

3. Sleep Analysis

Asleep.SleepTrackingManager.requestAnalysis()

  • 현재까지 측정된 결과를 받아옵니다.
fun requestAnalysis(analysisListener: SleepTrackingManager.AnalysisListener)
Parameter NameTypeDescription
analysisListenerAnalysisListenersleep analysis에 대한 리스너

Asleep.SleepTrackingManager.AnalysisListener

interface AnalysisListener {
    fun onSuccess(session: Session)
    fun onFail(errorCode: Int, detail: String)
}
  • 성공 시, onSuccess()를 호출합니다.

Session data type

data class Session(
    val id: String?,
    val state: String?,
    val startTime: String?,
    val endTime: String?,
    val sleepStages: List<Int?>?,
    val breathStages: List<Int?>?
)
Parameter NameTypeDescription
idString?수면 세션 id
stateString?세션의 상태 ( OPEN, CLOSED or COMPLETE)
startTimeString?세션 시작 시각
endTimeString?세션 종료 시각
sleepStagesList<Int?>?수면 단계
breathStagesList<Int?>?호흡 안정 단계
  • 실패 시, onFail()이 호출됩니다.
Parameter NameTypeDescription
errorCodeIntAsleepErrorCode 참조
detailStringerrorCode에 관련된 메세지

4. Stop sleep tracking

Asleep.SleepTrackingManager.stopSleepTracking

  • Sleep Tracking을 정지합니다.
fun stopSleepTracking()

5. Get sleep tracking status

  • v2.1.2 이상부터 사용 가능

Asleep.SleepTrackingManager.getTrackingStatus()

fun getTrackingStatus(): TrackingStatus

Asleep.SleepTrackingManager.TrackingStatus

class TrackingStatus (var sessionId: String? = null)
Property nameTypeDescription
sessionIdString?현재 Tracking 중인 session id
TrackingListener의 onCreate 함수에서부터
사용할 수 있으며 해당 Session이 Close 될 때까지 유효하다