<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) من خلال سمات منفصلة لكل جزء من أجزائه:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]

هذه السمات التي تحدّد تنسيق معرّف الموارد المنتظم (URI) اختيارية، ولكنها تعتمد أيضًا على بعضها البعض:

  • إذا لم يتم تحديد scheme لفلتر الأهداف، سيتم تجاهل جميع سمات معرّف الموارد المنتظم الأخرى.
  • في حال عدم تحديد 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> لتوفير خيارات بيانات متعددة له. لا تحتوي أي من سماته على قيم تلقائية.

للحصول على معلومات حول طريقة عمل فلاتر الأهداف، بما في ذلك قواعد مطابقة عناصر الأهداف مع الفلاتر، راجِع الأهداف وفلاتر الأهداف وقسم فلاتر الأهداف في نظرة عامة على ملف البيان.

السمات:
android:scheme
تمثّل هذه السمة جزء المخطط من معرّف الموارد المنتظم (URI). هذه هي السمة الأساسية الدنيا لتحديد معرّف موارد منتظم (URI). يجب ضبط سمة scheme واحدة على الأقل للفلتر، وإلا لن يكون لأي من سمات معرّف الموارد المنتظم الأخرى أي معنى.

يتم تحديد المخطط بدون النقطتين الرأسيتين اللاحقتين، مثل 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، وتتيح الأنماط التالية المشابهة للتعبيرات العادية:

  • تتطابق النقطة (.) مع أي حرف.
  • تتطابق المجموعة ([...]) مع نطاقات الأحرف. على سبيل المثال، يتطابق [0-5] مع رقم واحد من 0 إلى 5، ولكن ليس من 6 إلى 9. [a-zA-Z] تتطابق مع أي حرف، بغض النظر عن حالة الأحرف. تتيح المجموعات أيضًا استخدام المعدِّل "not" ^.
  • يتطابق المعدِّل النجمي (*) مع النمط السابق صفر مرة أو أكثر.
  • يتطابق المُعدِّل بعلامة الجمع (+) مع النمط السابق مرة واحدة أو أكثر.
  • يحدّد المعدِّل "النطاق" ({...}) عدد المرات التي يمكن أن يتطابق فيها نمط.
أداة المطابقة pathAdvancedPattern هي عملية تنفيذ للتقييم يتم فيها إجراء المطابقة مع النمط في الوقت الفعلي بدون إمكانية التراجع.

بما أنّ \ يُستخدَم كحرف إلغاء عند قراءة السلسلة من XML، يجب إلغاء الحرف مرتين قبل تحليله كنمط. على سبيل المثال، تتم كتابة الحرف * على النحو \\*، وتتم كتابة الحرف \ على النحو \\\\. وهذا يشبه ما تكتبه عند إنشاء السلسلة في رمز Java البرمجي.

لمزيد من المعلومات عن هذه الأنواع الخمسة من الأنماط، راجِع أوصاف PATTERN_LITERAL وPATTERN_PREFIX وPATTERN_SIMPLE_GLOB وPATTERN_SUFFIX وPATTERN_ADVANCED_GLOB في فئة PatternMatcher.

لا تكون هذه السمات مفيدة إلا إذا تم تحديد السمتَين scheme وhost للفلتر أيضًا.

تم تقديم السمتَين pathSuffix وpathAdvancedPattern في المستوى 31 من واجهة برمجة التطبيقات.

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

أداة مطابقة لجزء من معرّف الموارد المنتظم (URI) لا تُدرِج البادئة #. راجِع ما ورد أعلاه لمعرفة معنى الأنماط المسموح بها في كل سمة.

لمطابقة الأحرف التي يتم عادةً ترميزها باستخدام URI، أدرِج النموذج الأولي (غير المرمّز) في قيمة السمة. على سبيل المثال، <data android:fragment="test!" /> تطابق #test! و#test%21.

تم طرحها في المستوى 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.

تم طرحها في المستوى 35 من واجهة برمجة التطبيقات.

android:mimeType
نوع وسائط MIME، مثل image/jpeg أو audio/mpeg4-generic يمكن أن يكون النوع الفرعي هو حرف البدل النجمة (*) للإشارة إلى أنّ أي نوع فرعي مطابق.

من الشائع أن يعرّف فلتر الأهداف عنصر <data> يتضمّن السمة android:mimeType فقط.

ملاحظة: تتطلّب مطابقة أنواع MIME في إطار عمل Android تطابقًا دقيقًا بين الأحرف الكبيرة والصغيرة، على عكس أنواع MIME الرسمية في RFC. نتيجةً لذلك، يجب دائمًا تحديد أنواع MIME باستخدام أحرف صغيرة.

تم إدخال القدرة لأول مرة في:
المستوى 1 من واجهة برمجة التطبيقات
راجِع أيضًا:
<action>
<category>