<data>

תחביר:
<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>