- بناء الجملة:
<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>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2024-08-22 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2024-08-22 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]