تعديلات الأذونات في Android 11

يتيح Android 11 للمستخدمين إمكانية تحديد عناصر أكثر دقة أذونات الوصول إلى الموقع الجغرافي والميكروفون والكاميرا بالإضافة إلى ذلك، لا يحتاج النظام يعيد ضبط أذونات التطبيقات غير المستخدَمة التي تستهدف الإصدار 11 من نظام التشغيل Android أو أعلى، وقد تحتاج التطبيقات إلى تعديل الأذونات التي تشير إلى ما إذا كانت استخدام نافذة تنبيه النظام أو قراءة المعلومات المتعلقة بأرقام الهواتف

أذونات لمرة واحدة

بدءًا من الإصدار 11 من نظام التشغيل Android، كلما طلب تطبيقك إذنًا المتعلقة بالموقع الجغرافي أو الميكروفون أو الكاميرا، فإن مربّع حوار الأذونات الموجّهة للمستخدمين يحتوي على خيار يُسمى هذه المرّة فقط. إذا حدد المستخدم هذا الخيار في يتم منح تطبيقك إذنًا لمرة واحدة مؤقتًا.

مزيد من المعلومات حول كيفية تعامل النظام مع عملية دفع لمرة واحدة الأذونات.

إعادة ضبط الأذونات تلقائيًا من التطبيقات غير المستخدَمة

إذا كان تطبيقك يستهدف الإصدار 11 من نظام التشغيل Android أو إصدارًا أحدث ولا يتم استخدامه لبضعة يحمي النظام بيانات المستخدم من خلال إعادة تعيين أذونات التشغيل التي منحها المستخدم لتطبيقك هذا الإجراء له نفس كما لو أن المستخدم قد اطّلع على إذن في إعدادات النظام وغيّر مستوى وصول التطبيق إلى رفض. إذا كان تطبيقك يتبع أفضل ممارسات طلب الأذونات في وقت التشغيل، ينبغي ألا يحتاج إلى إجراء أي تغييرات على تطبيقك. هذا لأنه بما أن المستخدم مع الميزات الموجودة في التطبيق، عليك التأكد من توفر الميزات الأذونات التي يحتاج إليها.

تعرّف على مزيد من المعلومات حول الآلية التي يتّبعها النظام لإعادة ضبط أذونات الخدمات غير المستخدَمة تلقائيًا. التطبيقات.

إذن الوصول إلى مربّع حوار الأذونات

بدءًا من الإصدار 11 من نظام التشغيل Android، إذا نقر المستخدم على رفض للحصول على إذن محدّد أكثر من مرة خلال فترة تثبيت التطبيق في جهازًا، فلن يظهر للمستخدم مربع حوار أذونات النظام إذا كان التطبيق في طلب هذا الإذن مرة أخرى. إجراء المستخدم يتضمن "عدم السؤال مرة أخرى". مشغَّلة في الإصدارات السابقة، سيظهر للمستخدمين مربع حوار أذونات النظام في كل مرة طلب التطبيق إذنًا، ما لم يكن المستخدم قد حدد خيار "عدم السؤال مرة أخرى أو مربع الاختيار أو الخيار. عدم تشجيع تغيير السلوك في Android 11 الطلبات المتكرّرة للحصول على الأذونات التي اختار المستخدمون رفضها.

لتحديد ما إذا تم رفض أذونات تطبيق نهائيًا (لتصحيح الأخطاء) واختباره)، فاستخدِم الأمر التالي:

adb shell dumpsys package PACKAGE_NAME

يكون PACKAGE_NAME هو اسم الحزمة المطلوب فحصها.

ويحتوي مخرج الأمر على أقسام تبدو على النحو التالي:

...
runtime permissions:
  android.permission.POST_NOTIFICATIONS: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
  android.permission.ACCESS_FINE_LOCATION: granted=false, flags=[ USER_SET|USER_FIXED|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
  android.permission.BLUETOOTH_CONNECT: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
...

يتم الإبلاغ عن الأذونات التي رفضها المستخدم مرة واحدة بواسطة USER_SET. يتم منح الأذونات التي تم رفضها نهائيًا من خلال اختيار رفض مرتين. تم الإبلاغ عنه بواسطة USER_FIXED.

أثناء إجراء الاختبار، قد تحتاج إلى إعادة ضبط هذه العلامات لضمان عدم إجراء المختبِرين متفاجئين عندما لا يظهر مربع حوار الطلب. للقيام بذلك، استخدم الأمر:

adb shell pm clear-permission-flags PACKAGE_NAME PERMISSION_NAME user-set user-fixed

"PERMISSION_NAME" هو اسم الإذن الذي تريد تنفيذه. إعادة تعيين. للاطّلاع على قائمة كاملة بأذونات تطبيقات Android، يُرجى الانتقال إلى permissions API. المرجع.

مزيد من المعلومات حول كيفية التعامل مع الإذن الرفض في تطبيقك.

تغييرات نافذة تنبيه النظام

يُجري Android 11 العديد من التغييرات على كيفية منح التطبيقات SYSTEM_ALERT_WINDOW إذن. تهدف التغييرات إلى حماية المستخدمين من خلال منح الإذن أكثر قصدًا.

يتم منح تطبيقات معينة تلقائيًا إذن SYSTEM_ALERT_WINDOW عند الطلب

يتم تلقائيًا منح فئات معيّنة من التطبيقات SYSTEM_ALERT_WINDOW إذن عند الطلب:

  • أي تطبيق يحتوي على ROLE_CALL_SCREENING ويطلب SYSTEM_ALERT_WINDOW، يتم منح الإذن تلقائيًا. في حال حذف سيفقد التطبيق إذن ROLE_CALL_SCREENING.

  • أي تطبيق يلتقط الشاشة عبر MediaProjection ويطلب "SYSTEM_ALERT_WINDOW" منح الإذن تلقائيًا ما لم يرفض المستخدم منح الإذن للتطبيق صراحةً. عند التطبيق يتوقف عن التقاط الشاشة، فسيفقد الإذن بذلك. تتعلق حالة الاستخدام هذه بشكل أساسي مخصّصة لتطبيقات بثّ الألعاب مباشرةً.

لا تحتاج هذه التطبيقات إلى إرسال ACTION_MANAGE_OVERLAY_PERMISSION للحصول على إذن SYSTEM_ALERT_WINDOW يمكن للتطبيقات ببساطة طلب SYSTEM_ALERT_WINDOW مباشرةً

تهدف النية MANAGE_OVERLAY_Permission إلى توجيه المستخدم دائمًا إلى شاشة أذونات النظام.

بدءًا من نظام التشغيل Android 11، ACTION_MANAGE_OVERLAY_PERMISSION تنقل النوايا دائمًا المستخدم إلى شاشة الإعدادات ذات المستوى الأعلى، حيث يمكن للمستخدم منح أو إبطال SYSTEM_ALERT_WINDOW أذونات التطبيقات. ويتم تجاهل أي بيانات للسمة package: في الغرض.

في الإصدارات السابقة من Android، كان هدف ACTION_MANAGE_OVERLAY_PERMISSION تحديد حزمة، والتي من شأنها أن تجلب المستخدم إلى شاشة خاصة بالتطبيق لإدارة الإذن هذه الوظيفة غير متاحة اعتبارًا من نظام التشغيل Android 11. بدلاً من ذلك، على المستخدم أولاً اختيار التطبيق الذي يريده منح الإذن أو إبطاله يهدف هذا التغيير إلى حماية المستخدمين من خلال جعل منح الإذن أكثر قصدًا

أرقام الهواتف

يغيّر نظام التشغيل Android 11 الإذن المرتبط بالهاتف الذي يستخدمه تطبيقك. المستخدم عند قراءة أرقام الهواتف.

إذا كان تطبيقك يستهدف الإصدار 11 من نظام التشغيل Android أو إصدارًا أحدث ويحتاج إلى الوصول إلى لواجهات برمجة تطبيقات رقم الهاتف المعروضة في القائمة التالية، يجب طلب READ_PHONE_NUMBERS بدلاً من إذن READ_PHONE_STATE.

إذا كان تطبيقك يشير إلى أنّ السمة READ_PHONE_STATE تستخدم طرق اتصال غير تلك المتوفّرة القائمة السابقة، يمكنك مواصلة طلب READ_PHONE_STATE في جميع إصدارات Android في حال استخدام إذن READ_PHONE_STATE فقط في القائمة السابقة، يجب تعديل ملف البيان على النحو التالي:

  1. عليك تغيير بيان "READ_PHONE_STATE" لكي يستخدم تطبيقك على نظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأقدم فقط.
  2. أضِف إذن READ_PHONE_NUMBERS.

يوضِّح مقتطف بيان البيان التالي هذه العملية:

<manifest>
    <!-- Grants the READ_PHONE_STATE permission only on devices that run
         Android 10 (API level 29) and lower. -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"
                     android:maxSdkVersion="29" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
</manifest>

مصادر إضافية

لمزيد من المعلومات حول التغييرات في الأذونات في Android 11، يمكنك الاطّلاع على المواد التالية:

الفيديوهات

التطوير وفقًا لآخر التغييرات المتعلّقة بالخصوصية في نظام التشغيل Android 11