درخواست دسترسی پس زمینه به داده های حسگر بدن

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">

سپس، برنامه شما باید مجوزها را در عملیات جداگانه درخواست کند :

  1. بررسی کنید آیا BODY_SENSORS اعطا شده است. اگر نه، اجازه درخواست کنید.
  2. بررسی کنید آیا BODY_SENSORS_BACKGROUND داده شده است یا خیر. اگر نه، اجازه درخواست کنید.
گزینه all the time اولین مورد لیست در صفحه تنظیمات است
شکل 1. تنظیمات حسگرها شامل گزینه‌ای به نام تمام زمان است که به داده‌های حسگر پس‌زمینه دسترسی می‌دهد.

احتیاط: اگر برنامه شما هر دو مجوز حسگر بدن را به طور همزمان درخواست کند، سیستم درخواست را نادیده می گیرد و به برنامه شما اجازه نمی دهد.

در اندروید 13 (سطح API 33) و بالاتر، گفتگوی مجوز زمان اجرا شامل گزینه "همیشه مجاز باشد" نیست. در عوض، کاربران باید دسترسی همیشگی حسگر پس‌زمینه را از تنظیمات سیستم فعال کنند، همانطور که در شکل 1 نشان داده شده است. وقتی پس از اعطای مجوز BODY_SENSORS ، مجوز BODY_SENSORS_BACKGROUND را درخواست می‌کنید، می‌توانید به کاربران کمک کنید تا به این صفحه تنظیمات حرکت کنند. اگر کاربران دسترسی همیشگی را رد کنند، باید بتوانند به استفاده از برنامه شما ادامه دهند.

برنامه نسخه قبلی را هدف قرار می دهد

متن پیوند "برو به تنظیمات" است
شکل 2. گفتگوی مجوز شامل پیوندی برای هدایت کاربران به مجوزهای حسگر برنامه در تنظیمات سیستم است.

وقتی برنامه شما نسخه‌ای از Android را زودتر از Android 13 هدف قرار می‌دهد، وقتی مجوز BODY_SENSORS را درخواست می‌کنید، دسترسی پس‌زمینه به‌طور خودکار اعطا نمی‌شود. در عوض، کاربران گفتگوی سیستمی را مشاهده می‌کنند که از کاربران دعوت می‌کند تا به تنظیمات مجوز حسگر برنامه شما بروید، همانطور که در شکل 2 نشان داده شده است. سپس، کاربران باید استفاده از حسگر پس‌زمینه را در آن صفحه تنظیمات فعال کنند.

کاربران می توانند دسترسی پس زمینه را رد کنند. این همان اثری است که مجوز BODY_SENSORS را در زمانی که برنامه شما در پس‌زمینه اجرا می‌کند لغو می‌کند. وقتی یک برنامه از PassiveMonitoringClient بدون مجوز دسترسی پس‌زمینه استفاده می‌کند و به پس‌زمینه می‌رود، برنامه مجوز BODY_SENSORS را از دست می‌دهد و پاسخ تماس onPermissionLost() فراخوانی می‌شود. به این دلایل، به ویژه مهم است که بهترین شیوه ها را برای درخواست مجوزهای زمان اجرا دنبال کنید.