<إذن>

بناء الجملة:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
المضمَّنة في:
<manifest>
description:
يشير إلى إذن أمان مستخدَم لتقييد الوصول إلى مكوّنات أو ميزات معيّنة في هذا التطبيق أو تطبيقات أخرى. لمزيد من المعلومات حول آلية عمل الأذونات، يُرجى الاطّلاع على قسم الأذونات في نظرة عامة على بيان التطبيق ونصائح الأمان.
السمات:
android:description
وصف للإذن يمكن قراءته، ويكون أطول وأكثر فائدة من التصنيف. قد يتم، على سبيل المثال، عرض توضيح الإذن للمستخدم عندما يُطلب من المستخدم منح الإذن لتطبيق آخر.

يتم ضبط هذه السمة كمرجع لمورد سلاسل. وعلى عكس السمة label، لا يمكن أن تكون سلسلة أوّلية.

android:icon
مرجع إلى مورد قابل للرسم لرمز يمثّل الإذن.
android:label
اسم للإذن يمكن للمستخدم قراءته.

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

android:name
الاسم الذي سيتم استخدامه في الترميز للإشارة إلى الإذن، كما هو الحال في عنصر <uses-permission> أو سمات permission لمكوّنات التطبيق

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

لهذا السبب، تنصح Google ببادئة الأذونات باسم حزمة التطبيق، وذلك باستخدام نمط النطاق العكسي. اتّبِع هذه البادئة بالدالة .permission.، ثم أدخِل وصفًا للإمكانية التي يمثلها الإذن في الجزء العلوي من SNAKE_CASE. مثلاً: com.example.myapp.permission.ENGAGE_HYPERSPACE.

يؤدي اتّباع هذا الاقتراح إلى تجنُّب تسمية التضاربات، كما يساعد في تحديد المالك ونيّة الحصول على إذن مخصّص بوضوح.

android:permissionGroup
يعيّن هذا الإذن إلى مجموعة. قيمة هذه السمة هي اسم المجموعة الذي تم تعريفه باستخدام عنصر <permission-group> في هذا التطبيق أو في تطبيق آخر. إذا لم يتم تعيين هذه السمة، فإن الإذن لا ينتمي إلى المجموعة.
android:protectionLevel

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

يتكون كل مستوى حماية من نوع إذن أساسي وعلامة صفر أو أكثر. على سبيل المثال، لا يحتوي مستوى الحماية "dangerous" على أي علامات. في المقابل، إنّ مستوى الحماية "signature|privileged" هو مجموعة من نوع الإذن الأساسي "signature" وعلامة "privileged".

يعرض الجدول التالي جميع أنواع الأذونات الأساسية. للحصول على قائمة بالعلامات، راجِع protectionLevel.

القيمة المعنى
"normal" تمثّل هذه السمة القيمة التلقائية. يشير هذا الإذن إلى إذن بمستوى خطورة أقل يمنح التطبيقات التي تطلب الوصول إلى ميزات معزولة على مستوى التطبيقات مع أقل قدر من المخاطر على التطبيقات الأخرى أو النظام أو المستخدم. ويمنح النظام هذا النوع من الأذونات تلقائيًا للتطبيق الذي يطلبه عند التثبيت، بدون أن يطلب موافقة صريحة من المستخدم، علمًا أنّ المستخدم لديه دائمًا خيار مراجعة هذه الأذونات قبل التثبيت.
"dangerous" يشير هذا المصطلح إلى إذن يتضمّن مستوى أعلى من الخطورة يمنح التطبيق الذي يطلب الإذن بالوصول إلى بيانات المستخدم الخاصة أو يتيح إمكانية التحكّم في الجهاز، ما يمكن أن يؤثر سلبًا في المستخدم. ولأنّ هذا النوع من الأذونات يشكّل خطرًا محتملاً، قد لا يمنحه النظام تلقائيًا للتطبيق الذي يقدّم الطلب. على سبيل المثال، قد يتم عرض أي أذونات خطيرة يطلبها التطبيق للمستخدم، وتتطلب تأكيدًا قبل المتابعة، أو قد يتم اتّباع نهج آخر لتجنُّب منح المستخدم تلقائيًا إمكانية استخدام هذه المرافق.
"signature" هو الإذن الذي يمنحه النظام فقط إذا كان التطبيق المقدّم الطلب موقَّعًا بشهادة التطبيق نفسها التي أعلنت عن الإذن. وفي حال تطابُق الشهادات، يمنح النظام الإذن تلقائيًا بدون إشعار المستخدم أو طلب موافقة صريحة منه.
"knownSigner" هو الإذن الذي يمنحه النظام فقط إذا كان التطبيق المقدّم الطلب موقَّعًا باستخدام شهادة مسموح بها. إذا كانت شهادة مقدِّم الطلب مدرَجة، يمنح النظام الإذن تلقائيًا بدون إبلاغ المستخدم أو طلب موافقة صريحة منه.
"signatureOrSystem"

مرادف قديم لـ "signature|privileged". تم إيقافها نهائيًا في المستوى 23 من واجهة برمجة التطبيقات.

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

يُستخدم الإذن "signatureOrSystem" في بعض الحالات الخاصة التي يكون فيها لدى عدة مورّدين تطبيقات مضمّنة في صورة نظام ويحتاجون إلى مشاركة ميزات محدّدة بشكل صريح لأنّه يتم دمجها معًا.

تم تقديمه في:
المستوى 1 من واجهة برمجة التطبيقات
راجِع أيضًا:
<uses-permission>
<permission-tree>
<permission-group>