<داده ها>

نحو:
اگر تگ داده فرزند مستقیم <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>
توضیحات:
مشخصات داده را به فیلتر قصد اضافه می کند. مشخصات یک نوع داده است که از ویژگی 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، از جمله قوانین نحوه تطبیق اشیاء قصد با فیلترها، Intents and Intent Filters و بخش Intent filters را در نمای کلی فایل مانیفست ببینید.

صفات:
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
بخش پورت یک مرجع 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 یک پیاده‌سازی ارزیابی است که در آن تطبیق در برابر الگو به‌صورت بلادرنگ و بدون پشتیبانی از پس‌گرد انجام می‌شود.

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

برای اطلاعات بیشتر در مورد این پنج نوع الگو، به توضیحات 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 (و در صورت تمایل، یک مقدار). برای مثال، می‌توانید URI‌هایی که به ?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 . نوع فرعی می تواند علامت علامت ستاره ( * ) باشد تا نشان دهد که هر نوع فرعی مطابقت دارد.

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

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

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