Android 13 و Wear OS 4 راهی برای دسترسی اپلیکیشنها به حسگرهای بدن، مانند ضربان قلب، از پسزمینه معرفی میکنند. این مدل دسترسی جدید مشابه مدلی است که دسترسی به موقعیت مکانی پسزمینه را در اندروید 10 معرفی کرد (سطح API 29) .
اگر برنامه شما نیاز به دسترسی به اطلاعات حسگر بدن در پسزمینه دارد، مانند هنگام نظارت بر دادههای خدمات بهداشتی در پسزمینه ، باید مجوز BODY_SENSORS_BACKGROUND
را درخواست کنید.
همانطور که در صفحه بهترین روشهای حفظ حریم خصوصی توضیح داده شد، برنامهها فقط زمانی باید مجوز BODY_SENSORS_BACKGROUND
را بخواهند که برای ویژگی مواجهه با کاربر حیاتی است، و آنها باید این را به درستی برای کاربران افشا کنند.
روند اعطای مجوز به نسخه SDK هدف برنامه شما بستگی دارد.
برنامه اندروید 13 یا بالاتر را هدف قرار می دهد
علاوه بر مجوز BODY_SENSORS
موجود، مجوز BODY_SENSORS_BACKGROUND
را در فایل مانیفست خود اعلام کنید:
<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">
سپس، برنامه شما باید مجوزها را در عملیات جداگانه درخواست کند :
- بررسی کنید آیا
BODY_SENSORS
اعطا شده است. اگر نه، اجازه درخواست کنید. - بررسی کنید آیا
BODY_SENSORS_BACKGROUND
داده شده است یا خیر. اگر نه، اجازه درخواست کنید.
احتیاط: اگر برنامه شما هر دو مجوز حسگر بدن را به طور همزمان درخواست کند، سیستم درخواست را نادیده می گیرد و به برنامه شما اجازه نمی دهد.
در اندروید 13 (سطح API 33) و بالاتر، گفتگوی مجوز زمان اجرا شامل گزینه "همیشه مجاز باشد" نیست. در عوض، کاربران باید دسترسی همیشگی حسگر پسزمینه را از تنظیمات سیستم فعال کنند، همانطور که در شکل 1 نشان داده شده است. وقتی پس از اعطای مجوز BODY_SENSORS
، مجوز BODY_SENSORS_BACKGROUND
را درخواست میکنید، میتوانید به کاربران کمک کنید تا به این صفحه تنظیمات حرکت کنند. اگر کاربران دسترسی همیشگی را رد کنند، باید بتوانند به استفاده از برنامه شما ادامه دهند.
برنامه نسخه قبلی را هدف قرار می دهد
وقتی برنامه شما نسخهای از Android را زودتر از Android 13 هدف قرار میدهد، وقتی مجوز BODY_SENSORS
را درخواست میکنید، دسترسی پسزمینه بهطور خودکار اعطا نمیشود. در عوض، کاربران گفتگوی سیستمی را مشاهده میکنند که از کاربران دعوت میکند تا به تنظیمات مجوز حسگر برنامه شما بروید، همانطور که در شکل 2 نشان داده شده است. سپس، کاربران باید استفاده از حسگر پسزمینه را در آن صفحه تنظیمات فعال کنند.
کاربران می توانند دسترسی پس زمینه را رد کنند. این همان اثری است که مجوز BODY_SENSORS
را در زمانی که برنامه شما در پسزمینه اجرا میکند لغو میکند. وقتی یک برنامه از PassiveMonitoringClient
بدون مجوز دسترسی پسزمینه استفاده میکند و به پسزمینه میرود، برنامه مجوز BODY_SENSORS
را از دست میدهد و پاسخ تماس onPermissionLost()
فراخوانی میشود. به این دلایل، به ویژه مهم است که بهترین شیوه ها را برای درخواست مجوزهای زمان اجرا دنبال کنید.