Помогите пользователям понять свои привычки сна
Sleep API, библиотека на основе сервисов Google Play, позволяет приложениям определять, когда пользователь засыпает и просыпается.
После получения разрешения от пользователя сервисы Google Play собирают информацию, связанную с окружающей яркостью, движением устройства и т. д., чтобы определить время, когда пользователь засыпает и просыпается. Ваше приложение может подписаться на обновления этой информации. Таким образом, ваше приложение может информировать пользователей об их привычках сна и побуждать пользователей улучшать гигиену сна и общее самочувствие.
Прежде чем вы начнете
Чтобы подготовить приложение, выполните действия, описанные в следующих разделах.
Требования к приложению
Убедитесь, что в файле сборки вашего приложения используются следующие значения:
-
minSdkVersion
29
или выше. -
compileSdkVersion
29
или выше.
Настройте свое приложение
В файле build.gradle
на уровне проекта включите репозиторий Google Maven и центральный репозиторий 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:23.1.0' }
Добавьте разрешение ACTIVITY_RECOGNITION в файл AndroidManifest.xml
android: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 сон или может обнаружить сон. Событие сегмента также включает время, когда пользователь, скорее всего, засыпал и просыпался, исходя из доступных данных датчиков.
Будьте в курсе вероятности того, что пользователь спит
Ваше приложение также может получать регулярные обновления о событиях классификации сна.
Каждое событие классификации сна предоставляет отметку времени, а также значения, которые представляют движение устройства, яркость окружающей среды и вероятность того, что пользователь в это время спит. Например, если уверенность во сне значительно возрастает между одной временной меткой и следующей временной меткой, а окружающая яркость значительно снижается между этими двумя временными метками, вероятно, пользователь недавно заснул.
Ваше приложение может комбинировать эту информацию с дополнительными данными, предоставленными пользователем, чтобы более уверенно определять, когда пользователь засыпает и просыпается.