<data>

תחביר:
אם תג הנתונים הוא הצאצא המיידי של <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>