<مجوز>

نحو:
<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>
توضیحات:
یک مجوز امنیتی را اعلام می کند که برای محدود کردن دسترسی به اجزا یا ویژگی های خاص این یا سایر برنامه ها استفاده می شود. برای اطلاعات بیشتر در مورد نحوه عملکرد مجوزها، به بخش مجوزها در نمای کلی مانیفست برنامه و نکات امنیتی مراجعه کنید.
صفات:
android:description
شرحی قابل خواندن از مجوز که طولانی تر و آموزنده تر از برچسب است. برای مثال، زمانی که از کاربر خواسته می شود مجوز را به برنامه دیگری بدهد، ممکن است نمایش داده شود.

این ویژگی به عنوان یک مرجع به یک منبع رشته تنظیم شده است. برخلاف ویژگی label ، نمی تواند یک رشته خام باشد.

android:icon
ارجاع به یک منبع قابل ترسیم برای نمادی که نشان دهنده مجوز است.
android:label
یک نام قابل خواندن توسط کاربر برای مجوز.

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

android:name
نامی که در کد برای اشاره به مجوز استفاده می شود، مانند عنصر <uses-permission> یا ویژگی های permission اجزای برنامه.

توجه: سیستم اجازه نمی دهد چندین بسته مجوزی با نام یکسان را اعلام کنند، مگر اینکه همه بسته ها با یک گواهی امضا شده باشند. اگر بسته ای مجوز را اعلام کند، سیستم به کاربر اجازه نمی دهد بسته های دیگری را با همان نام مجوز نصب کند، مگر اینکه آن بسته ها با همان گواهی بسته اول امضا شده باشند.

به همین دلیل، گوگل توصیه می‌کند که مجوزها را با نام بسته برنامه با استفاده از نام‌گذاری به سبک معکوس دامنه اضافه کنید. این پیشوند را با .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 API منسوخ شده است.

مجوزی که سیستم فقط به برنامه‌هایی اعطا می‌کند که در یک پوشه اختصاصی در تصویر سیستم Android هستند یا با گواهینامه مشابه برنامه‌ای که مجوز را اعلام کرده امضا شده‌اند. از استفاده از این گزینه خودداری کنید، زیرا سطح حفاظتی "signature" برای اکثر نیازها کافی است و بدون توجه به محل نصب برنامه ها کار می کند.

مجوز "signatureOrSystem" برای موقعیت‌های خاص خاصی استفاده می‌شود که در آن چندین فروشنده برنامه‌های کاربردی را در یک تصویر سیستم دارند و نیاز دارند ویژگی‌های خاصی را به طور صریح به اشتراک بگذارند، زیرا آنها با هم ساخته می‌شوند.

معرفی شده در:
API سطح 1
همچنین ببینید:
<uses-permission>
<permission-tree>
<permission-group>