مجوز ها در اندروید 11

بروزرسانی مجوز ها در اندروید 11

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

 

مجوز های یک بار مصرف

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

 

 

نکته : اگر برنامه شما در حال حاضر از درخواست مجوز ران تایم استفاده میکند نیازی ندارید که برنامه خود را تغییر بدهید تا از این قابلیت پشتیبانی بکند. 

 

بازنشانی مجوز ها در برنامه های بلا استفاده

اگر برنامه شما اندروید 11 یا بالاتر را هدف قرار داده باشد و مدت زیادی از استفاده آن در سیستم گذشته باشد, سیستم به طور خودکار مجوز های حساسی را که کاربر به شما اعطا کرده است را بازنشانی میکند تا از داده های کاربر محافظت کند. این عمل دقیقا همان تاثیری را دارد که زمانی که شما از کاربر درخواست مجوز میکنید و کاربر بر روی دکمه deny  یا همان عدم اعطا کلیک میکند. در صورتی که برنامه شما از درخواست مجوز ران تایم استفاده میکند نیازی نیست تغییر در اپلیکیشن خود ایجاد کنید چرا که کاربر از موضوع اپلیکیشن شما می داند که چه ویژگی هایی دارد و شما نیز با استفاده از درخواست مجوز به کاربر می فهمانید که این ویژگی ها نیاز به مجوز دسترسی دارند.

 

نکته : سیستم فقط مجوز های زمان اجرا را بازنشانی میکنند, هر مجوزی که هنگام اجرای اپلیکیشن نیاز است که از کاربر درخواست کنیم و این درخواست به صورت دیالوگ نمایش داده میشود را شامل میشود. 

 

نمایان شدن دیالوگ مجوز

در اندروید 11 برای نمایش دیالوگ درخواست مجوز به این صورت شده است که اگر در طول اجرای برنامه شما اگر کاربر بر روی دکمه deny یا عدم اعطای مجوز کلیک کند حتی اگر مجدد برنامه ی شما آن مجوز را درخواست کند دیگر آن دیالوگ نمایش داده نمیشود. در نسخه های قدیمی هر بار که اپلیکیشن درخواست مجدد مجوز اعطا نشده را میداد, مجدد دیالوگ درخواست مجوز نمایش داده میشد مگر تا زمانی که کاربر در همان دیالوگ تیک گزینه “دیگر از من نپرس” را فعال میکرد.
اندروید 11 برای احترام گذاشتن به انتخاب کاربر, از نمایش مجدد دیالوگ درخواست مجوز هایی که توسط کاربر رد شده است صرف نظر میکند.

تغییرات پنجره هشدار سیستم

در اندروید 11 چند تغییر برای درخواست اعطای مجوز SYSTEM_ALERT_WINDOW به وجود آمده است, این تغییرات برای محافظت از کاربران در نظر گرفته شده است تا بتوانند دسترسی مجوز را طوری به برنامه بدهند که خودشان متوجه شوند.

به برخی از برنامه های خاص به طور خودکار و بدون درخواست آنها مجوز SYSTEM_ALERT_WINDOW اعطا می شود.

برخی از کلاس ها یا برنامه هایی که بدون درخواست, مجوز SYSTEM_ALERT_WINDOW برایشان صادر میشود :

  • هر برنامه ای که مجوز ROLE_CALL_SCREENING را دارا باشد, هنگام درخواست مجوز SYSTEM_ALERT_WINDOW, این مجوز به طوری اتوماتیک برای آن اعطا میشود و بلعکس.
  • هر برنامه ای که از صفحه نمایش با استفاده از MediaProjection فیلم برداری میکند, و در خواست مجوز SYSTEM_ALERT_WINDOW را داشته باشد سیستم این مجوز را به صورت اتوماتیک برایش اعطا میکند مگر اینکه خود کاربر صراحتا این محوز را رد کرده باشد. اگر برنامه فیلم برداری را متوقف کند دیگر این مجوز به اپلیکیشن داده نمیشود. به گفته گوگل این مورد استفاده, در درجه اول برای برنامه های پخش زنده بازی در نظر گرفته شده است.

این برنامه ها نیاز نیست برای دریافت مجوز SYSTEM_ALERT_WINDOW درخواست مجوز ACTION_MANAGE_OVERLAY_PERMISSION را بدهند, برنامه ها می توانند به طور مستقیم درخواست مجوز SYSTEM_ALERT_WINDOW را بدهند.

 

intent درخواست MANAGE_OVERLAY_PERMISSION همیشه کاربر را مستقیم به صفحه مجوزهای سیستم منتقل میکند.

در اندروید 11 با استفاده از intent مربوط به ACTION_MANAGE_OVERLAY_PERMISSION کاربر به صفحه اول تنظیمات منتقل میکند, جایی که کاربر میتواند مجوز های SYSTEM_ALERT_WINDOW را برای تمامی برنامه هایی که این مجوز را نیاز دارند, اعطا یا رد کند. در این intent دیگر نمی تواند package برنامه ی مورد نظر را وارد کنید, چرا که هر package ارسال شود سیستم آن را نادیده میگیرد.

در نسخه های قدیم اندروید با استفاده از intent مربوط به ACTION_MANAGE_OVERLAY_PERMISSION می توانیم package برنامه ی خاصی را در نظر بگیریم تا تنظیمات آن اپلیکیشن به تنهایی نمایش داده شود اما این عملکرد دیگر در اندروید 11 پشتیبانی نمیشود به جای آن کاربر باید برنامه ای را که میخواهد به آن مجوز بدهید یا از آن مجوز را بگیرد را انتخاب کند. این کار برای حفاظت از کاربر انجام شده است که کاربر در اعطا مجوز کاملا هوشیار باشد.

 

شماره تلفن ها

اندروید 11 مجوز مربوط به تلفن را هنگامی که قصد خواندن شماره تلفن داشته باشیم تغییر میدهد.

اگر برنامه شما اندروید 11 یا بالاتر را هدف قرار داده و نیاز به دسترسی به API های شماره تلفن نشان داده شده در لیست زیر دارد, شما باید مجوز READ_PHONE_NUMBERS را بجای مجوز READ_PHONE_STATE درخواست بدهید.
  • متد getLine1Number() در هر دو کلاس TelephonyManager و TelecomManager.
  • متد پشتیبانی نشده getMsisdn() در کلاس TelephonyManager.

اگر برنامه شما درخواست مجوز READ_PHONE_STATE را برای کار هایی به غیر از کارهای موجود در لیست بالا دارد, شما میتوانید این درخواست را در هر نسخه ای از اندروید داشته باشید. اگر شما از READ_PHONE_STATE برای انجام کارهایی که در لیست پایین آمده است درخواست میکنید, باید فایل AndroidManifest خود را مثل کد های پایین بروز کنید:

  • درخواست مجوز READ_PHONE_STATE در اندروید 10 یا پایین تر ارسال شود و از آن استفاده شود.
  • افزودن مجوز READ_PHONE_NUMBERS

کد های زیر به شما این امکان را میدهد که دو موضوع زیر را در مانیفیست خود اعمال کنید :

<manifest>
    <!-- درخواست اعطای مجوز READ_PHONE_STATE  در اندروید 10 یا پایین تر ارسال میشود. -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"
                     android:maxSdkVersion="29" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
</manifest>

 

 

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

مقالات پیشنهادی

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۹۹۳
۰
۲۲ آذر ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۹۱۲
۰
۱۲ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۱۰۵۵
۰
۲۹ آبان ۱۳۹۹

هک و امنیت

در تعریف کلی این واژه می توان گفت که به پیدا کردن راه های نفوذ به یک حریم شخصی و استفاده غیر مجاز از آن را هک می نامیم. هدف از هک می تواند ...


۹۵۹
۰
۱۳ آذر ۱۳۹۹