<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>
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
جزء المنفذ من مرجع معرّف الموارد المنتظم (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] مع أي حرف، بغض النظر عن حالة الأحرف. تتوافق المجموعات أيضًا مع مفتاح تعديل ^ الذي "لا".
  • يتطابق عنصر تعديل علامة النجمة (*) مع النمط السابق صفر أو أكثر من ذلك.
  • يتطابق معدِّل الجمع (+) مع النمط السابق مرة واحدة أو أكثر.
  • يحدِّد مفتاح تعديل النطاق ({...}) عدد المرات التي يمكن أن يتطابق فيها النمط.
مُطابق pathAdvancedPattern هو عملية تنفيذ تقييم يتم فيها المطابقة مع النمط في الوقت الفعلي بدون توفير دعم التراجع.

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

للحصول على مزيد من المعلومات حول هذه الأنواع الخمسة من الأنماط، يمكنك الاطّلاع على أوصاف PATTERN_LITERAL وPATTERN_PREFIX وPATTERN_SIMPLE_GLOB وPATTERN_SUFFIX و PATTERN_ADVANCED_GLOB في الصف PatternMatcher.

يكون استخدام هاتَين السمتَين مفيدًا فقط في حال تحديد السمتَين scheme وhost للفلتر أيضًا.

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

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

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

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

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