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

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

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

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

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

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

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

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

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