- תחביר:
- אם תג הנתונים הוא הצאצא המיידי של
<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> - description:
- הוספת מפרט נתונים למסנן כוונה. המפרט הוא סוג נתונים, באמצעות המאפיין
mimeType, URI או גם סוג נתונים וגם 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>כדי לתת לו כמה אפשרויות נתונים. לאף אחד מהמאפיינים שלו אין ערכי ברירת מחדל.מידע על אופן הפעולה של מסנני הכוונה, כולל הכללים שלפיהם אובייקטי הכוונה מותאמים למסננים, זמין במאמר כוונות ומסנני כוונה ובקטע מסנני כוונה בסקירה הכללית של קובץ המניפסט.
- אם לא מציינים את המאפיין
- מאפיינים:
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.*לא חוקי כי התו הווירטואלי * הוא לא התו הראשון.הערה: ההתאמה של שם המארח במסגרת Android תלויה ברישיות, בניגוד ל-RFC הרשמי. לכן, תמיד צריך לציין שמות מארחים באותיות קטנות.
android:port- החלק של היציאה (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]תואם לכל אות, ללא קשר לאותיות רישיות. קבוצות תומכות גם במשתנה^'לא'. -
המאפיין asterisk (
*) תואם לדפוס הקודם אפס פעמים או יותר. -
המגביל 'פלוס' (
+) תואם לדפוס הקודם פעם אחת או יותר. -
המאפיין range (
{...}) מציין את מספר הפעמים שתבנית יכולה להתאים.
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 (ואם רוצים, גם ערך). לדוגמה, אפשר להתאים בין URIs שמסתיימים ב-
?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 תלויה ברישיות, בניגוד לסוגי ה-MIME הפורמליים של RFC. לכן, תמיד צריך לציין סוגי MIME באמצעות אותיות קטנות.
- הופיע לראשונה:
- רמת API 1
- מידע נוסף:
<action><category>
<data>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון 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"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[]]