- תחביר:
- אם תג הנתונים הוא צאצא ישיר של התג
<intent-filter>:
<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" />
אם תג הנתונים הוא צאצא ישיר של התג<uri-relative-filter-group>:
<data android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:fragment="string" android:fragmentPattern="string" android:fragmentPrefix="string" android:fragmentSuffix="string" android:fragmentAdvancedPattern="string" android:query="string" android:queryPattern="string" android:queryPrefix="string" android:querySuffix="string" android:queryAdvancedPattern="string" />
- מוכל ב:
-
<intent-filter><uri-relative-filter-group> - תיאור:
- הוספת מפרט נתונים למסנן Intent. המפרט הוא סוג נתונים, באמצעות מאפיין
mimeType, URI או שניהם. מציינים URI באמצעות מאפיינים נפרדים לכל אחד מהחלקים שלו:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]המאפיינים האלה שמציינים את פורמט ה-URI הם אופציונליים, אבל הם גם תלויים זה בזה:
- אם לא מציינים
schemeבמסנן הכוונות, המערכת מתעלמת מכל שאר מאפייני ה-URI. - אם לא מציינים
hostבמסנן, המערכת מתעלמת מהמאפייןportומכל מאפייני הנתיב.
כל רכיבי
<data>שנכללים באותו רכיב<intent-filter>תורמים לאותו מסנן. לדוגמה, הגדרת המסנן הבאה:<intent-filter . . . > <data android:scheme="something" android:host="project1.example.com" /> <data android:scheme="something-else" android:host="project2.example.com" android:path="/page1" /> ... </intent-filter>
שווה לזה:
<intent-filter . . . > <data android:scheme="something" /> <data android:scheme="something-else" /> <data android:host="project1.example.com" /> <data android:host="project2.example.com" /> <data android:path="/page1" /> ... </intent-filter>
אפשר להציב מספר כלשהו של רכיבי
<data>בתוך רכיב<intent-filter>כדי לספק לו כמה אפשרויות נתונים. לאף אחד מהמאפיינים שלו אין ערכי ברירת מחדל.מידע על אופן הפעולה של מסנני כוונות, כולל הכללים להתאמת אובייקטים של כוונות למסננים, זמין במאמרים Intents and Intent Filters ובקטע Intent filters בסקירה הכללית של קובץ המניפסט.
- אם לא מציינים
- מאפיינים:
android:scheme- החלק של הסכימה ב-URI. זהו מאפיין חובה מינימלי לציון URI. צריך להגדיר לפחות מאפיין
schemeאחד למסנן, אחרת לא תהיה משמעות למאפיינים האחרים של ה-URI.הסכימה מצוינת ללא הנקודתיים בסוף, למשל
httpבמקוםhttp:.אם במסנן מוגדר סוג נתונים (באמצעות המאפיין
mimeType) אבל לא מוגדרת סכימה, הסכימותcontent:ו-file:מוגדרות כברירת מחדל.הערה: התאמת הסכימה ב-Android framework היא תלוית-רישיות, בניגוד ל-RFC. לכן, תמיד צריך לציין סכימות באותיות קטנות.
android:host-
חלק המארח של רשות URI. למאפיין הזה אין משמעות אלא אם מציינים גם את מאפיין
schemeשל המסנן. כדי להתאים לכמה תת-דומיינים, משתמשים בכוכבית (*) כדי להתאים לאפס תווים או יותר במארח. לדוגמה, המארח*.google.comתואם ל-www.google.com, ל-.google.comול-developer.google.com.הכוכבית צריכה להיות התו הראשון במאפיין המארח. לדוגמה, המארח
google.co.*לא תקין כי התו הכללי של הכוכבית לא מופיע כתו ראשון.הערה: התאמה של שם המארח ב-Android Framework היא תלוית-רישיות, בניגוד ל-RFC הרשמי. לכן, תמיד צריך לציין שמות של מארחים באותיות קטנות.
android:port- החלק של היציאה ברשות URI. למאפיין הזה יש משמעות רק אם מציינים גם את המאפיינים
schemeו-hostעבור המסנן. android:pathandroid:pathPrefixandroid:pathSuffixandroid:pathPatternandroid:pathAdvancedPattern- החלק של הנתיב ב-URI, שחייב להתחיל ב-
/. המאפייןpathמציין נתיב מלא שמושוואה לנתיב המלא באובייקטIntent. המאפייןpathPrefixמציין נתיב חלקי שתואם רק לחלק הראשוני של הנתיב באובייקטIntent.המאפיין
pathSuffixמותאם בדיוק לחלק האחרון של הנתיב באובייקטIntent, והמאפיין הזה לא צריך להתחיל בתו/.המאפיין
pathPatternמציין נתיב מלא שתואם לנתיב המלא באובייקטIntent, אבל הוא יכול להכיל את התווים הכלליים הבאים:- נקודה (
.) תואמת לכל תו. -
כוכבית (
*) תואמת לרצף של אפס עד הרבה מקרים של התו שמופיע מיד לפני הכוכבית. -
נקודה שאחריה כוכבית (
.*) מתאימה לכל רצף של אפס עד הרבה תווים.
במאפיין
pathAdvancedPatternמציינים נתיב מלא, שמושוואה לנתיב המלא של אובייקטIntent. המאפיין תומך בדפוסים הבאים שדומים לביטויים רגולריים:-
נקודה (
.) תואמת לכל תו. -
קבוצה (
[...]) מתאימה לטווחים של תווים. לדוגמה,[0-5]תואם לספרה בודדת מ-0 עד 5, אבל לא מ-6 עד 9.[a-zA-Z]תואם לכל אות, ללא קשר לאותיות רישיות או קטנות. בנוסף, אפשר להשתמש במגדיר 'לא'^בערכות. -
המשנה (modifier) כוכבית (
*) מתאים לדפוס הקודם אפס פעמים או יותר. -
המגביל פלוס (
+) תואם לדפוס הקודם פעם אחת או יותר. -
המשנה (modifier) של הטווח (
{...}) מציין את מספר הפעמים שתבנית יכולה להתאים.
pathAdvancedPatternהיא הטמעה של הערכה שבה ההתאמה מתבצעת לתבנית בזמן אמת ללא תמיכה בחזרה אחורה.התו
\משמש כתו בריחה כשקוראים את המחרוזת מ-XML, ולכן צריך להשתמש בבריחה כפולה לפני שמנתחים אותה כתבנית. לדוגמה, מחרוזת ליטרלית*נכתבת כ-\\*, ומחרוזת ליטרלית\נכתבת כ-\\\\. זה דומה למה שכותבים כשיוצרים את המחרוזת בקוד Java.מידע נוסף על חמשת סוגי התבניות האלה מופיע בתיאורים של
PATTERN_LITERAL,PATTERN_PREFIX,PATTERN_SIMPLE_GLOB,PATTERN_SUFFIXו-PATTERN_ADVANCED_GLOBבמחלקהPatternMatcher.המאפיינים האלה רלוונטיים רק אם מציינים גם את המאפיינים
schemeו-hostשל המסנן.התכונות
pathSuffixו-pathAdvancedPatternהושקו ברמת API 31. - נקודה (
android:fragmentandroid:fragmentPrefixandroid:fragmentSuffixandroid:fragmentPatternandroid:fragmentAdvancedPattern-
תבנית התאמה לקטע URI. לא כוללים את הקידומת
#. למעלה מוסבר מה המשמעות של כל מאפיין ומהם הדפוסים שמותרים בו.כדי להתאים תווים שבדרך כלל מקודדים ב-URI, צריך לכלול את הטופס הגולמי (לא מקודד) בערך המאפיין. לדוגמה:
<data android:fragment="test!" />מתאים ל-#test!ול-#test%21.התכונה הזו הושקה ברמת API 35.
android:queryandroid:queryPrefixandroid:querySuffixandroid:queryPatternandroid:queryAdvancedPattern-
תנאי התאמה לפרמטר של שאילתת URI (ואופציונלית, ערך). לדוגמה, אפשר להתאים URI שמסתיים ב-
?param=valueל-<data android:query="param=value" />. לא כוללים את הקידומת?. למעלה מוסבר מה המשמעות של כל מאפיין ומהם הדפוסים שמותרים בו.כדי להתאים תווים שבדרך כלל מקודדים ב-URI, צריך לכלול את הטופס הגולמי (לא מקודד) בערך המאפיין. לדוגמה:
<data android:query="test!" />מתאים ל-?test!ול-?test%21.התכונה הזו הושקה ברמת API 35.
android:mimeType- סוג מדיה MIME, כמו
image/jpegאוaudio/mpeg4-generic. תת-הסוג יכול להיות תו כללי לחיפוש (*) כדי לציין שכל תת-סוג מתאים.בדרך כלל מסנן כוונות מכריז על אלמנט
<data>שכולל רק את המאפייןandroid:mimeType.הערה: ההתאמה של סוג MIME ב-Android framework היא תלוית-אותיות רישיות, בניגוד לסוגי MIME רשמיים של RFC. לכן, תמיד צריך לציין סוגי MIME באותיות קטנות.
- הושק ב:
- רמת API 1
- ראו גם:
<action><category>
<data>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-02-23 (שעון 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"]],["עדכון אחרון: 2026-02-23 (שעון UTC)."],[],[]]