به کاربران کمک کنید تا عادات خواب خود را درک کنند

Sleep API، کتابخانه‌ای که توسط سرویس‌های Google Play پشتیبانی می‌شود، به برنامه‌ها اجازه می‌دهد تا تعیین کنند کاربر چه زمانی به خواب می‌رود و چه زمانی بیدار می‌شود.

خدمات Google Play پس از دریافت مجوز از کاربر، اطلاعات مربوط به روشنایی اطراف، حرکت دستگاه و موارد دیگر را جمع‌آوری می‌کند تا زمان‌هایی را که کاربر به خواب می‌رود و بیدار می‌شود، استنباط کند. برنامه شما می‌تواند مشترک به‌روزرسانی‌های این اطلاعات شود. به این ترتیب، برنامه شما می تواند کاربران را در مورد عادات خواب خود آگاه کند و به تشویق کاربران برای بهبود بهداشت خواب و رفاه کلی کمک کند.

قبل از اینکه شروع کنی

برای آماده سازی اپلیکیشن خود، مراحل زیر را انجام دهید.

پیش نیازهای اپلیکیشن

مطمئن شوید که فایل ساخت برنامه شما از مقادیر زیر استفاده می کند:

  • minSdkVersion 29 یا بالاتر.
  • compileSdkVersion 29 یا بالاتر.
.

برنامه خود را پیکربندی کنید

در فایل 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: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")
    }

درباره Sleep API بیشتر بدانید

برنامه شما می‌تواند اطلاعات مربوط به زمان خواب را از رویداد به‌روزرسانی روزانه بخش خواب بازیابی کند.

هر رویداد بخش خواب حاوی اطلاعاتی در مورد اینکه آیا API خواب را تشخیص داده است یا می تواند خواب را تشخیص دهد. رویداد بخش همچنین شامل زمان‌هایی است که کاربر به احتمال زیاد به خواب رفته و بر اساس داده‌های حسگر موجود بیدار شده است.

برنامه شما همچنین می‌تواند به‌روزرسانی‌های منظم درباره رویدادهای طبقه‌بندی خواب دریافت کند.

هر رویداد طبقه‌بندی خواب یک مهر زمانی همراه با مقادیری ارائه می‌کند که حرکت دستگاه، روشنایی محیط و احتمال خواب بودن کاربر در آن زمان را نشان می‌دهد. به عنوان مثال، اگر اطمینان خواب بین یک مهر زمانی و مهر زمانی بعدی به طور قابل توجهی افزایش یابد، و اگر روشنایی اطراف بین همان 2 مهر زمانی به طور قابل توجهی کاهش یابد، این احتمال وجود دارد که کاربر اخیراً به خواب رفته باشد.

برنامه شما می تواند این اطلاعات را با داده های اضافی ارائه شده توسط کاربر ترکیب کند تا با اطمینان بیشتری مشخص کند که کاربر چه زمانی به خواب می رود و بیدار می شود.

برنامه نمونه SleepSampleKotlin با استفاده از Sleep API یک گردش کار سرتاسر را نشان می دهد.