<داده ها>

نحو:
اگر تگ داده فرزند بلافصل یک <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 استفاده می‌کند. یک 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="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> قرار دهید تا گزینه‌های داده‌ای متعددی به آن بدهید. هیچ یک از ویژگی‌های آن مقادیر پیش‌فرض ندارند.

برای اطلاعات در مورد نحوه عملکرد فیلترهای intent، از جمله قوانین مربوط به نحوه تطبیق اشیاء intent با فیلترها، به بخش Intents و Intent Filters و بخش Intent filters در نمای کلی فایل manifest مراجعه کنید.

ویژگی‌ها:
android:scheme
بخش طرحواره (scheme) یک URI. این حداقل ویژگی ضروری برای مشخص کردن یک URI است. حداقل یک ویژگی scheme باید برای فیلتر تنظیم شود، در غیر این صورت هیچ یک از ویژگی‌های دیگر URI معنی‌دار نخواهند بود.

یک طرح بدون علامت دو نقطه در انتهای آن مشخص می‌شود، مانند http به جای http:

اگر فیلتر دارای مجموعه نوع داده باشد (با استفاده از ویژگی mimeType ) اما هیچ طرحی نداشته باشد، طرح‌های content: و file: در نظر گرفته می‌شوند.

نکته : تطبیق طرحواره در چارچوب اندروید، برخلاف RFC، به حروف کوچک و بزرگ حساس است. در نتیجه، همیشه طرحواره‌ها را با حروف کوچک مشخص کنید.

android:host
بخش میزبان از یک مرجع URI. این ویژگی بی‌معنی است مگر اینکه یک ویژگی scheme نیز برای فیلتر مشخص شده باشد. برای تطبیق چندین زیردامنه، از ستاره ( * ) برای تطبیق صفر یا چند کاراکتر در میزبان استفاده کنید. برای مثال، میزبان *.google.com با www.google.com ، .google.com و developer.google.com مطابقت دارد.

علامت ستاره باید اولین کاراکتر از ویژگی میزبان باشد. برای مثال، host google.co.* نامعتبر است، زیرا علامت ستاره اولین کاراکتر نیست.

نکته : تطبیق نام میزبان در چارچوب اندروید، برخلاف 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 مطابقت دارد، اما می‌تواند شامل wildcard های زیر باشد:

  • نقطه ( . ) با هر کاراکتری مطابقت دارد.
  • علامت ستاره ( * ) با دنباله‌ای از صفر تا چندین تکرار از کاراکتر بلافاصله قبل از خود مطابقت دارد.
  • نقطه و به دنبال آن علامت ستاره ( .* ) هر دنباله از صفر تا چند کاراکتر را مطابقت می‌دهد.

ویژگی pathAdvancedPattern یک مسیر کامل را مشخص می‌کند که با مسیر کامل شیء Intent مطابقت دارد و از الگوهای regex مانند زیر پشتیبانی می‌کند:

  • نقطه ( . ) با هر کاراکتری مطابقت دارد.
  • یک مجموعه ( [...] ) با محدوده‌ای از کاراکترها مطابقت دارد. برای مثال، [0-5] با یک رقم واحد از 0 تا 5 مطابقت دارد اما با 6 تا 9 مطابقت ندارد. [a-zA-Z] با هر حرفی، صرف نظر از کوچکی و بزرگی حروف، مطابقت دارد. مجموعه‌ها همچنین از اصلاح‌کننده "not" ^ پشتیبانی می‌کنند.
  • علامت ستاره ( * ) با الگوی قبلی صفر یا چند بار مطابقت دارد.
  • علامت جمع ( + ) یک یا چند بار با الگوی قبلی مطابقت دارد.
  • اصلاح‌کننده‌ی محدوده ( {...} ) تعداد دفعاتی را که یک الگو می‌تواند مطابقت داشته باشد، مشخص می‌کند.
تطبیق‌دهنده‌ی pathAdvancedPattern یک پیاده‌سازی ارزیابی است که در آن تطبیق با الگو به صورت بلادرنگ و بدون پشتیبانی از بازگشت به عقب انجام می‌شود.

از آنجا که \ هنگام خواندن رشته از XML به عنوان یک کاراکتر گریز استفاده می‌شود، قبل از اینکه به عنوان یک الگو تجزیه شود، باید از دو کاراکتر گریز استفاده کنید. برای مثال، یک * به صورت \\* و یک \ به صورت \\\\ نوشته می‌شود. این شبیه چیزی است که هنگام ساخت رشته در کد جاوا می‌نویسید.

برای اطلاعات بیشتر در مورد این پنج نوع الگو، به توضیحات PATTERN_LITERAL ، PATTERN_PREFIX ، PATTERN_SIMPLE_GLOB ، PATTERN_SUFFIX و PATTERN_ADVANCED_GLOB در کلاس PatternMatcher مراجعه کنید.

این ویژگی‌ها تنها در صورتی معنادار هستند که ویژگی‌های scheme و host نیز برای فیلتر مشخص شده باشند.

pathSuffix و pathAdvancedPattern در API سطح ۳۱ معرفی شدند.

android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern

یک تطبیق‌دهنده برای یک قطعه URI. پیشوند # را وارد نکنید. برای معنی و الگوهای مجاز در هر ویژگی، به بالا مراجعه کنید.

برای تطبیق کاراکترهایی که معمولاً URI کدگذاری می‌شوند، فرم خام (بدون کدگذاری) را در مقدار ویژگی قرار دهید. برای مثال، <data android:fragment="test!" /> با #test! و #test%21 مطابقت دارد.

در API سطح ۳۵ معرفی شد.

android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern

یک تطبیق‌دهنده برای پارامتر پرس‌وجوی URI (و به صورت اختیاری، یک مقدار). برای مثال، می‌توانید URIهایی که به ?param=value ختم می‌شوند را با <data android:query="param=value" /> تطبیق دهید. پیشوند ? را وارد نکنید. برای معنی و الگوهای مجاز در هر ویژگی، به بالا مراجعه کنید.

برای تطبیق کاراکترهایی که معمولاً URI-encoded هستند، شکل خام (غیر کد شده) را در مقدار ویژگی قرار دهید. برای مثال، <data android:query="test!" /> با ?test! و ?test%21 مطابقت دارد.

در API سطح ۳۵ معرفی شد.

android:mimeType
یک نوع رسانه MIME، مانند image/jpeg یا audio/mpeg4-generic . زیرنوع می‌تواند علامت ستاره ( * ) باشد تا نشان دهد که هر زیرنوعی مطابقت دارد.

برای یک فیلتر intent رایج است که یک عنصر <data> تعریف کند که فقط شامل ویژگی android:mimeType باشد.

نکته : تطبیق نوع MIME در چارچوب اندروید، برخلاف انواع MIME رسمی RFC، به حروف کوچک و بزرگ حساس است. در نتیجه، همیشه انواع MIME را با حروف کوچک مشخص کنید.

معرفی شده در:
API سطح ۱
همچنین ببینید:
<action>
<category>