자동 측정

자동 측정

앱으로 수면을 측정하려면 일반적으로 잠들기 전에 수면 측정 시작 버튼을 눌러야 합니다. 하지만 많은 사용자가 잠들기 전에 이 버튼을 누르는 것을 잊어 수면 측정을 놓치는 경우가 많습니다. AsleepTrack를 사용하면 특정 시간이나 조건이 만족될 때 자동으로 수면 측정을 시작할 수 있습니다.


Android 자동 측정

Android에서는 자동 측정 기능을 앱에 직접 구현할 수 있습니다. 에이슬립에서 제공하는 Sample App을 통해 어떻게 자동 측정을 구현할 수 있는지 확인할 수 있습니다.

1. 권한 획득

Android의 자동 측정을 위해서는 Overlay permission 권한이 필요합니다. 자동으로 수면 측정을 시작하기 위해서는 마이크 녹음 시작 권한이 있는 FOREGROUND_SERVICE를 특정 시간에 시작할 수 있어야하는데 이를 위해 해당 권한이 필요합니다.

Android 12(API levels 31) 이상에서는 정확한 알람을 위해 Alarms & reminders 권한을 허용해야 합니다. 이를 통해 정확한 시간에 자동 측정을 시작할 수 있습니다.

앱을 실행한 후, 마이크 사용 권한 및 푸시 알림 권한은 미리 허용해두어야 합니다.


2. 자동 측정 UX/UI

에이슬립에서 제공하는 Sample App을 통해 자동 측정 UX/UI의 샘플 코드를 확인하실 수 있습니다. 앱 우측 상단의 Auto Tracking항목을 통해 자동 측정 스케쥴을 설정할 수 있습니다.

측정을 시작할 시간과 종료할 시간을 선택한 뒤 하단의 Auto Tracking을 Enable로 설정한 후, Save 버튼을 누릅니다. 이때 AlarmManager의 setExactAndAllowWhileIdle 메서드를 통해 알람 시간이 등록됩니다.

측정 시작 시간이 되면 백그라운드에서 앱이 자동으로 실행되고, 알림 아이콘이 생성되며 마이크가 사용 중으로 표시됩니다. 측정 종료 시간이 되면 리포트를 받아 화면에 표시됩니다.


iOS 자동 측정

iOS는 Android와 달리 사용자가 직접 단축어앱의 자동화기능을 활용하여 자동화를 등록해야 자동 측정을 사용할 수 있습니다. 사용자가 자동화 등록을 할 수 있도록 수면 측정의 App intent를 구현해주어야합니다. 에이슬립에서 제공하는 Sample App을 통해 어떻게 App intent를 구현하는지 확인할 수 있습니다.

1. 단축어 앱

단축어 앱은 iOS 12 부터 사용 가능한 기본앱으로 다양한 조건에 따른 개인별 자동화를 설정할 수 있습니다. 자동화 기능을 통해 특정 시간에 수면 측정을 시작할 수도 있고 단축어앱에서 지원하는 다양한 트리거(e.g. 수면 모드, WiFi 연결, 등)로 수면 측정을 시작 할 수 있습니다.


2. 수면 측정 시작 자동화 설정

어떤 트리거로 수면 측정을 시작할지 선택했다면 수면 측정 시작 App Intent를 자동화에 등록해야합니다. 먼저 Open App으로 AsleepTrack을 도입한 앱을 열고 수면 측정 시작 App Intent를 등록합니다.


3. 수면 측정 종료 자동화 설정

수면 측정 시작과 마찬가지로 수면 측정 종료 또한 자동화로 등록이 가능합니다. 수면 측정 종료 App Intent를 등록합니다.

4. 자동 측정

측정 시작 시간이 되면 앱이 자동으로 열려 수면 측정을 시작합니다. 단, 핸드폰이 잠금 상태일 경우 자동화 실행 여부를 묻는 모달이 뜨며, 수락을 누르면 자동화가 실행됩니다.