مجوزهای موقعیت مکانی Tristate در اندروید 10 به کاربران کنترل بیشتری بر نحوه دسترسی برنامه ها به مکان های دستگاهشان می دهد.
در اندروید 9 و نسخههای پایینتر، کاربران هنگام اعطای دسترسی موقعیت مکانی به برنامهها، انتخابهای مداومی داشتند. آنها میتوانستند رد یا اجازه دهند ، که به برنامهها اجازه میداد همیشه (پیشزمینه و پسزمینه) دسترسی داشته باشند. مجوزهای موقعیت مکانی Tristate در اندروید 10 به کاربران سه گزینه برای اجازه دادن به برنامه دسترسی به مکان دستگاه می دهد. هنگامی که یک برنامه درخواست می کند، از کاربران خواسته می شود تا سطح مجوز را اعطا یا رد کنند.
یک کاربر معمولاً سه گزینه ارائه شده در شکل 1 را می بیند. با این حال، موارد استفاده وجود دارد که تنها دو مورد از این گزینه ها مورد نیاز است، و در چنین مواردی فقط آن دو نشان داده شده است.
شکل 1. صفحه اعلانات Tristate.
این سه گزینه هستند:
- همیشه مجاز باشد : مکان دستگاه برای برنامه مشخص است حتی زمانی که برنامه در حال استفاده نیست (در پسزمینه اجرا میشود). این معادل اجازه دادن به مجوز در اندروید 9 و پایینتر است.
- فقط زمانی که برنامه در حال استفاده است مجاز باشد : (فقط پیشزمینه) مکان دستگاه فقط زمانی برای برنامه قابل مشاهده است که به طور فعال در حال اجرا باشد.
- انکار : مکان دستگاه هرگز برای برنامه قابل مشاهده نیست. این همان رد کردن مجوز در اندروید 9 و پایین تر است.
هنگامی که برنامهها مجوز درخواست میکنند، از کاربران خواسته میشود اجازه دسترسی به موقعیت مکانی را اعطا کنند.
هنگامی که کاربر اجازه دسترسی را فقط در زمانی که برنامه در حال استفاده است اعطا کند، یک برنامه میتواند دائماً افزایش تدریجی دسترسی به Allow را درخواست کند. کاربر یک گفتگوی درخواست را می بیند (نشان داده شده در شکل 2 ). اگر کاربر دسترسی حین استفاده Keep را انتخاب کند، وقتی برنامه در استفاده بعدی به مکان دستگاه دسترسی پیدا میکند، کادر گفتگو گزینه Keep و دوباره درخواست را ارائه میدهد.
برای برنامههایی که Android 10 را هدف قرار میدهند، کادر گفتگو تحت این شرایط ظاهر میشود:
- پس از حداقل 24 ساعت از اعطای مجوز.
- فقط در صورتی که برنامه مکانهایی را در پسزمینه دریافت کند.
- وقتی صفحه نمایش روشن است و کاربر از برنامه دیگری استفاده نمی کند.
شکل 2. مجوزهای افزایشی.
برای کسب اطلاعات بیشتر درباره درخواست مجوز، به دسترسی برنامه به مکان دستگاه مراجعه کنید. برای جزئیات بیشتر اینکه آیا برنامه شما Android 9 و پایینتر را هدف قرار میدهد، به ادامه اقدام توسط کاربر مراجعه کنید.
تأثیر
ویژگی مجوزهای موقعیت مکانی سهایالتی بر هر برنامهای که هنگام اجرا در پسزمینه نیاز به دسترسی به موقعیت مکانی دستگاه دارد، تأثیر میگذارد و در Android 10 مورد نیاز است.
میتوانید کد خود را تغییر دهید، اما نمیتوانید رفتار مرتبط با مجوز را در چارچوب تغییر دهید یا سفارشی کنید.
پیاده سازی
مجوزهای موقعیت مکانی Tristate برای برنامههای Android 10 صرف نظر از SDK هدف برنامه اعمال میشود.
برای کسب اطلاعات در مورد اجرای موارد استفاده برنامه خود (در مورد ارتقاء)، به بخش طراحی برای سناریوهای ارتقاء دستگاه در مستندات توسعه دهنده مراجعه کنید.
برای مشاهده نحوه فعال کردن دسترسی برای موارد استفاده مختلف (مانند نیاز به دسترسی به موقعیت مکانی پسزمینه برای برنامههایی مانند Google Maps یا خدمات Google Play)، این موضوعات را در صفحه دسترسی برنامه به مکان دستگاه مشاهده کنید:
دسترسی به موقعیت مکانی درون برنامه
در صورت تمایل، کاربران می توانند مجوزهای دسترسی برنامه شما را به رد یا فقط در حین استفاده از برنامه به مجاز تغییر دهند. برای مجوز دسترسی به موقعیت مکانی درون برنامه و برای همه برنامه های شخص اول و شخص ثالث، سطوح کنترل کاربر را در جدول زیر ارائه کنید.
برنامه نوع مجوز باید درخواست کند | گزینه های کاربر برای ارائه |
---|---|
برنامه فقط مجوزهای پیش زمینه را درخواست می کند | فقط هنگام استفاده از برنامه مجاز است انکار |
برنامه همیشه مجوز درخواست می کند (پیش زمینه و پس زمینه) | همیشه اجازه دهید فقط هنگام استفاده از برنامه مجاز است انکار |
همه برنامههای دارای درخواست دسترسی به مکان | فقط هنگام استفاده از برنامه مجاز است |
این مجوزها برای همه درخواستهای مکان اعمال میشود. برنامههای دارای «فقط مجاز» هنگام استفاده از مجوزهای برنامه مجاز نیستند وایفای پسزمینه یا اسکن سلولی.
در Android 11 یا پایینتر، برنامههای دارای Allow only در حین استفاده از مجوزهای برنامه، اسکن بلوتوث پسزمینه مجاز نیستند. از Android 12، برنامههای دارای Allow only در حین استفاده از مجوزهای برنامه میتوانند با تنظیم مقدار ویژگی android:usesPermissionFlags
روی neverForLocation
، نتایج اسکن بلوتوث را دریافت کنند. برای جزئیات بیشتر، نگاه کنید به برنامه مکان فیزیکی را استخراج نمی کند .
ارتقاء سیستم عامل
در ارتقاء سیستم عامل به Android 10، مجوزهای مکان برنامه بر اساس موارد زیر ترجمه می شوند:
- روشن تبدیل به Allow only در حین استفاده می شود.
- خاموش باقی می ماند خاموش ( انکار ).
- دسترسی به موقعیت مکانی که از قبل اعطا شده است، پیش از اعطای مجوز فقط در حین استفاده می شود.