- תחביר:
- אם תג הנתונים הוא הצאצא המיידי של
<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="project.example.com" /> ... </intent-filter>
זהה לביטוי הזה:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </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:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android: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:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
-
פונקציית התאמה לחלק מ-URI. אין לכלול את הקידומת
#
. למעלה מוסבר מה המשמעות של כל דפוס ומה מותר להשתמש בו בכל מאפיין.כדי להתאים תווים שמקודדים בדרך כלל ב-URI, צריך לכלול את הטופס הגולמי (לא המקודד) בערך המאפיין. לדוגמה, הערך
<data android:fragment="test!" />
תואם לערך#test!
וגם לערך#test%21
.הוצגה ברמת API 35.
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android: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>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-12-02 (שעון 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-12-02 (שעון UTC)."],[],[]]