- תחביר:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:mimeType="string" />
- בתוך:
<intent-filter>
- תיאור:
- הוספת מפרט נתונים למסנן Intent. המפרט הוא
סוג נתונים, באמצעות
mimeType
URI, או גם סוג נתונים וגם URI. URI מצוין על ידי לכל אחד מהחלקים:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
המאפיינים הבאים המציינים את פורמט ה-URI הם אופציונליים, אך תלויים גם באופן הדדי:
- אם
scheme
אינו מצוין עבור מסנן Intent, המערכת מתעלמת מכל שאר מאפייני ה-URI. - אם
host
לא מצוין במסנן, המערכת תתעלם מהמאפייןport
ומכל מאפייני הנתיב.
כל רכיבי
<data>
הכלולים באותו רכיב רכיב אחד (<intent-filter>
) תורם אל אותו מסנן. כך, לדוגמה, מפרט המסננים הבא:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
שווה לערך הזה:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
אפשר למקם כל מספר של רכיבי
<data>
בתוך<intent-filter>
כדי לתת לו מספר נתונים אפשרויות. לאף אחד מהמאפיינים אין ערכי ברירת מחדל.מידע על אופן הפעולה של מסנני Intent, כולל הכללים לאופן שבו אובייקטים של Intent הן מותאמות למסננים, אפשר לראות כוונות וכן מסנני Intent מסנני Intent בסקירה הכללית של קובץ המניפסט.
- אם
- :
android:scheme
- החלק של הסכימה של URI. זהו מאפיין חיוני מינימלי עבור
שמציין URI. יש להגדיר מאפיין
scheme
אחד לפחות עבור המסנן, או שלאף אחד ממאפייני ה-URI האחרים אין משמעות.מצוינת סכימה ללא נקודתיים בסוף, למשל
http
במקוםhttp:
.אם המסנן הוגדר לסוג נתונים (באמצעות
mimeType
אבל לא סכמה, הסכימותcontent:
ו-file:
ככל הנראה.הערה: התאמת סכמות במסגרת Android היא תלוי אותיות רישיות, בשונה מ-RFC. לכן צריך לציין תמיד סכמות. באמצעות אותיות קטנות.
android:host
-
החלק המארח של רשות URI. למאפיין הזה אין משמעות
אלא אם כן מאפיין
scheme
מצוין גם עבור המסנן. כדי לבצע התאמה לכמה תת-דומיינים, צריך להשתמש בכוכבית (*
) כדי: להתאים לאפס תווים או יותר במארח. לדוגמה, המארח*.google.com
תואםwww.google.com
,.google.com
וגםdeveloper.google.com
.הכוכבית חייבת להיות התו הראשון של מאפיין המארח. לדוגמה, שם המארח הערך
google.co.*
לא חוקי, כי התו הכללי לחיפוש כוכבית הוא לא התו הראשון.הערה: התאמת שמות מארח ב-framework של Android היא תלוי אותיות רישיות, בשונה מה-RFC הרשמי. לכן, צריך לציין תמיד שמות מארחים באותיות קטנות.
android:port
- החלק של היציאה של רשות URI. למאפיין הזה יש משמעות בלבד
אם
scheme
וגם מאפייניhost
מצוינים גם עבור את המסנן. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- החלק של הנתיב ב-URI, שחייב להתחיל ב-
/
. המאפייןpath
מציין שתואם לנתיב המלא באובייקטIntent
. המאפייןpathPrefix
מציין נתיב חלקי שנמצאה בו התאמה רק החלק הראשוני של הנתיב באובייקטIntent
.מתבצעת התאמה מדויקת של המאפיין
pathSuffix
עם קטע הסיום בנתיב אובייקטIntent
, והמאפיין הזה לא חייב להתחיל בתו/
. המאפייןpathPattern
מציין נתיב מלא שתואם לערך המלא באובייקטIntent
, אבל הוא יכול להכיל את התווים הכלליים לחיפוש הבאים:- כוכבית (
*
) מתאימה רצף של אפס למופעים רבים של את התו הקודם. - נקודה ואחריה כוכבית (
.*
) תואמת לכל רצף של בין אפס להרבה תווים.
המאפיין
pathAdvancedPattern
מציין נתיב מלא, שתואם הנתיב המלא של האובייקטIntent
, והוא תומך בתבניות הבאות שדומות לביטוי רגולרי (regex):-
נקודה (
.
) תואמת לכל תו. -
קבוצה (
[...]
) תואמת לטווחים של תווים. לדוגמה ,[0-5]
תואם לספרה יחידה מ-0 עד 5, אבל לא מ-6 עד 9.[a-zA-Z]
תואמת לכל אות, ללא קשר לאותיות רישיות. קבוצות תומכות גם בערך 'not' מקש הצירוף^
. -
מקש הצירוף של הכוכבית (
*
) תואם לדפוס הקודם אפס פעמים או יותר. -
מקש הצירוף של הפלוס (
+
) תואם לדפוס הקודם פעם אחת או יותר. -
ערך הצירוף של הטווח (
{...}
) מציין את מספר הפעמים שהדפוס יכולה להתאים.
pathAdvancedPattern
היא הטמעה של הערכה שבה נעשה כנגד הדפוס בזמן אמת, ללא תמיכה במעקב אחר חזרה.כי
\
משמש כתו בריחה כשהמחרוזת נקראת מ-XML, לפני שהוא מנתח כדפוס, עליכם לסמן בתו בריחה (escape) פעמיים. לדוגמה,*
בליטרל נכתב כך:\\*
, הליטרל\
נכתב כך:\\\
. זה כמו מה שכותבים ליצור את המחרוזת בקוד Java.למידע נוסף על חמשת סוגי הדפוסים האלה, אפשר לקרוא את התיאורים של
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
, וגםPATTERN_ADVANCED_GLOB
ב כיתה אחת (PatternMatcher
).למאפיינים האלה יש משמעות רק אם
scheme
ו-host
יצוינו גם מאפיינים של המסנן.הוספנו את
pathSuffix
ואתpathAdvancedPattern
לרמת API 31. - כוכבית (
android:mimeType
- סוג מדיה MIME, כמו
image/jpeg
אוaudio/mpeg4-generic
. סוג המשנה יכול להיות תו כללי לחיפוש כוכבית (*
) כדי לציין תת-הסוג תואם.לעיתים קרובות מסנן Intent מצהיר על רכיב
<data>
שכולל רק את המאפייןandroid:mimeType
.הערה: התאמת סוג MIME ב-framework של Android היא תלוי אותיות רישיות, בשונה מסוגי RFC MIME הרשמיים. כתוצאה מכך, תמיד לציין סוגי MIME באמצעות אותיות קטנות.
- הושקו ב:
- רמת API 1
- למידע נוסף:
<action>
<category>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. 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": "עדכון אחרון: 2024-08-22 (שעון UTC).",
"confidential": False
}