- תחביר:
<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
של רכיבי האפליקציה.הערה: המערכת לא מאפשרת להצהיר על מספר חבילות הרשאה באותו שם, אלא אם כל החבילות חתומות עם אותו אישור. אם חבילה מצהירה על הרשאה, המערכת לא מתירה המשתמש יכול להתקין חבילות אחרות עם אותו שם הרשאה, אלא אם החבילות האלה חתומות באותו אישור כמו של החבילה הראשונה.
מהסיבה הזו, 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"
. הוצא משימוש ב-API רמה 23.הרשאה שהמערכת מעניקה רק לאפליקציות בתיקייה ייעודית בתמונה של מערכת Android או חתומה עם אותו אישור כמו האפליקציה שהצהרה על הרשאה. עדיף להימנע משימוש באפשרות הזאת, כי
"signature"
רמת ההגנה מספיקה לרוב הצרכים, ופועלת ללא קשר של המקומות שבהם מותקנות האפליקציות.ההרשאה
"signatureOrSystem"
משמשת לפעולות מיוחדות במצבים שבהם למספר ספקים יש אפליקציות שמובנות במערכת. צריך לשתף תכונות ספציפיות בצורה מפורשת, כי שנבנית ביחד.
- הושקו ב:
- רמת API 1
- למידע נוסף:
<uses-permission>
<permission-tree>
<permission-group>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-08-22 (שעון UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"חסרים לי מידע או פרטים"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"התוכן מורכב מדי או עם יותר מדי שלבים"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"התוכן לא עדכני"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"בעיה בתרגום"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"בעיה בדוגמאות/בקוד"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"סיבה אחרת"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"התוכן קל להבנה"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"התוכן עזר לי לפתור בעיה"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"סיבה אחרת"
}]
{"lastModified": "\u05e2\u05d3\u05db\u05d5\u05df \u05d0\u05d7\u05e8\u05d5\u05df: 2024-08-22 (\u05e9\u05e2\u05d5\u05df UTC)."}
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2024-08-22 (שעון UTC)."]]