اجازه‌های مکان سه‌حالتی

اجازه‌های مکان سه‌حالته در Android 10 به کاربران کنترل بیشتری بر نحوه دسترسی برنامه‌ها به مکان دستگاهشان می‌دهد.

در Android 9 و نسخه‌های پایین‌تر، کاربران هنگام اعطای دسترسی به مکان به برنامه‌ها انتخاب‌های دائمی انجام می‌دادند. کاربران می‌توانستند درخواست را رد کنند یا اجازه دهند، که درصورت اجازه دادن، برنامه‌ها همیشه (در پیش‌زمینه و پس‌زمینه) به مکان دسترسی داشتند. اجازه‌های مکان سه‌حالتی در Android 10 به کاربران سه گزینه برای اجازه دادن به برنامه جهت دسترسی به مکان دستگاه ارائه می‌دهد. وقتی برنامه‌ای درخواست اجازه می‌کند، از کاربران خواسته می‌شود سطح اجازه را اعطا یا رد کنند.

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

صفحه اجازه‌های مکان سه‌حالتی

شکل ۱. صفحه اعلان‌های سه‌حالته.

این سه گزینه است:

  • همیشه مجاز باشد: مکان دستگاه حتی زمانی که از برنامه استفاده نمی‌شود (برنامه در پس‌زمینه اجرا می‌شود) برای برنامه شناخته‌شده است. این معادل اجازه دادن در Android 9 و نسخه‌های پایین‌تر است.
  • فقط هنگام استفاده از برنامه مجاز باشد: (فقط پیش‌نما) مکان دستگاه فقط زمانی برای برنامه قابل‌مشاهده است که برنامه به‌طور فعال درحال اجرا باشد.
  • رد کردن: مکان دستگاه هرگز برای برنامه نمایان نیست. این گزینه همانند رد کردن اجازه در Android 9 و نسخه‌های پایین‌تر است.

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

وقتی کاربری اجازه دسترسی فقط هنگام استفاده از برنامه مجاز است را اعطا می‌کند، برنامه می‌تواند افزایش تدریجی دسترسی به همیشه مجاز است را درخواست کند. کاربر کادر گفتگوی درخواست را می‌بیند (در شکل ۲ نشان داده شده است). اگر کاربر حفظ دسترسی درحین استفاده را انتخاب کند، وقتی برنامه در استفاده بعدی به مکان دستگاه دسترسی پیدا می‌کند، کادر گفتگویی گزینه حفظ شود و دیگر پرسیده نشود را ارائه می‌دهد.

کادر گفتگو در شرایط زیر برای برنامه‌هایی که Android 10 را هدف‌یابی می‌کنند ظاهر می‌شود:

  • حداقل ۲۴ ساعت پس‌از اعطای اجازه.
  • فقط اگر برنامه در پس‌زمینه مکان‌ها را دریافت می‌کند.
  • وقتی صفحه‌نمایش روشن است و کاربر از برنامه دیگری استفاده نمی‌کند.
اجازه‌های افزایشی

شکل ۲. اجازه‌های افزایشی.

برای کسب اطلاعات بیشتر درباره درخواست اجازه‌ها، دسترسی برنامه به مکان دستگاه را ببینید. برای جزئیات بیشتر درباره اینکه آیا برنامه شما Android 9 و نسخه‌های پایین‌تر را هدف‌یابی می‌کند، ادامه اقدام آغازشده توسط کاربر را ببینید.

تأثیر

ویژگی اجازه‌های مکان سه‌حالته بر هر برنامه‌ای که هنگام اجرا در پس‌زمینه به مکان دستگاه نیاز دارد تأثیر می‌گذارد و در Android 10 الزامی است.

می‌توانید کدتان را تغییر دهید اما نمی‌توانید رفتار مربوط به اجازه را در چارچوب تغییر دهید یا سفارشی‌سازی کنید.

پیاده‌سازی

اجازه‌های مکان سه‌حالتی در Android 10 بدون توجه به کیت توسعه نرم‌افزار هدف برنامه اعمال می‌شود.

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

برای دیدن نحوه فعال کردن دسترسی برای موارد استفاده مختلف (مثل نیاز به دسترسی به مکان پس‌زمینه‌ای برای برنامه‌هایی مثل Google Maps یا خدمات Google Play)، این موضوعات را در صفحه دسترسی برنامه به مکان دستگاه مشاهده کنید:

دسترسی به مکان در برنامه

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

نوع اجازه برنامه‌ها باید درخواست کنند گزینه‌های کاربر برای ارائه
برنامه فقط اجازه‌های پیش‌زمینه‌ای را درخواست می‌کند مجاز فقط هنگام استفاده از برنامه
رد کردن
برنامه همیشه اجازه درخواست می‌کند (پیش‌زمینه و پس‌زمینه) اجازه دادن همه
اجازه دادن فقط هنگام استفاده از برنامه
رد کردن
همه برنامه‌هایی که درخواست دسترسی به مکان دارند مجاز فقط هنگام استفاده از برنامه

این اجازه‌ها برای همه درخواست‌های مکان اعمال می‌شود. برنامه‌هایی که اجازه مجاز بودن فقط هنگام استفاده از برنامه دارند، اجازه اسکن سلولی یا Wi-Fi پس‌زمینه‌ای ندارند.

در Android 11 یا نسخه‌های پایین‌تر، برنامه‌هایی که اجازه فقط هنگام استفاده از برنامه را دارند اجازه اسکن بلوتوث پس‌زمینه‌ای ندارند. از Android 12، برنامه‌هایی که اجازه مجاز بودن فقط هنگام استفاده از برنامه دارند می‌توانند با تنظیم مقدار ویژگی android:usesPermissionFlags روی neverForLocation، نتایج اسکن Bluetooth را دریافت کنند. برای جزئیات بیشتر، برنامه مکان فیزیکی را استخراج نمی‌کند را ببینید.

ارتقای سیستم‌عامل

در ارتقای سیستم‌عامل به Android 10، اجازه‌های مکان برنامه طبق موارد زیر ترجمه می‌شود:

  • روشن به مجاز فقط هنگام استفاده تبدیل می‌شود.
  • خاموش خاموش می‌ماند (رد کردن).
  • دسترسی به مکان ازقبل اعطاشده به پیش‌اعطای فقط هنگام استفاده مجاز باشد تبدیل می‌شود.