Помогите пользователям понять свои привычки сна.
Библиотека Sleep API, работающая на базе сервисов Google Play, позволяет приложениям определять, когда пользователь засыпает и просыпается.
Получив разрешение пользователя, сервисы Google Play собирают информацию об окружающей яркости, движении устройства и многом другом, чтобы определить время засыпания и пробуждения пользователя. Ваше приложение может подписаться на обновления этой информации. Таким образом, ваше приложение сможет информировать пользователей об их привычках сна и помогать им улучшать гигиену сна и общее самочувствие.
Прежде чем начать
Для подготовки приложения выполните действия, описанные в следующих разделах.
Предварительные требования к приложению
Убедитесь, что в файле сборки вашего приложения используются следующие значения:
-
minSdkVersion—29или выше. -
compileSdkVersion29или выше.
Настройте свое приложение
В файле build.gradle на уровне проекта укажите репозиторий Maven от Google и центральный репозиторий Maven как в разделе buildscript , так и в разделе allprojects :
buildscript { repositories { google() mavenCentral() } }
allprojects { repositories { google() mavenCentral() } }
Добавьте зависимость от сервисов Google Play для Sleep API в файл сборки Gradle вашего модуля , который обычно находится по адресу app/build.gradle :
dependencies { implementation 'com.google.android.gms:play-services-location:24.0.0' }
Добавьте разрешение ACTIVITY_RECOGNITION в файл AndroidManifest.xmlandroid:name=”android.permission.ACTIVITY_RECOGNITION” .
<manifest>
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<application>...</application>
</manifest>
Зарегистрируйтесь для получения обновлений о сне.
Перед регистрацией для получения обновлений сначала убедитесь, что пользователь предоставил разрешение ACTIVITY_RECOGNITION . Дополнительную информацию о разрешениях см. в разделе «Запрос разрешений приложения» .
После получения разрешения зарегистрируйтесь для получения обновлений о поведении пользователя во время сна, включая сегменты сна и результаты классификации событий сна, вызвав функцию requestSleepSegmentUpdates() .
val task = ActivityRecognition.getClient(context) .requestSleepSegmentUpdates( pendingIntent, SleepSegmentRequest.getDefaultSleepSegmentRequest()) .addOnSuccessListener { viewModel.updateSubscribedToSleepData(true) Log.d(TAG, "Successfully subscribed to sleep data.") } .addOnFailureListener { exception -> Log.d(TAG, "Exception when subscribing to sleep data: $exception") }
Узнайте больше об API сна
Получайте ежедневную сводку времени сна
Ваше приложение может получать информацию о времени сна из ежедневного события обновления сегмента сна.
Каждое событие сегмента сна содержит информацию о том, обнаружил ли API сон или может обнаружить сон. Событие сегмента также включает время, когда пользователь, скорее всего, засыпал и просыпался, исходя из доступных данных датчиков.
Будьте в курсе вероятности того, что пользователь спит
Ваше приложение также может получать регулярные обновления о событиях классификации сна.
Каждое событие классификации сна предоставляет отметку времени, а также значения, которые представляют движение устройства, яркость окружающей среды и вероятность того, что пользователь в это время спит. Например, если уверенность во сне значительно возрастает между одной временной меткой и следующей временной меткой, а окружающая яркость значительно снижается между этими двумя временными метками, вероятно, пользователь недавно заснул.
Ваше приложение может комбинировать эту информацию с дополнительными данными, предоставленными пользователем, чтобы более уверенно определять, когда пользователь засыпает и просыпается.