- بناء الجملة:
<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-06-21 (حسب التوقيت العالمي المتفَّق عليه)
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"لا يحتوي على المعلومات التي أحتاج إليها."
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"الخطوات معقدة للغاية / كثيرة جدًا."
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"المحتوى قديم."
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"ثمة مشكلة في الترجمة."
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"مشكلة في العيّنات / التعليمات البرمجية"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"غير ذلك"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"يسهُل فهم المحتوى."
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"ساعَدني المحتوى في حلّ مشكلتي."
},{
"type": "thumb-up",
"id": "otherUp",
"label":"غير ذلك"
}]
{
"last_modified": "تاريخ التعديل الأخير: 2024-06-21 (حسب التوقيت العالمي المتفَّق عليه)",
"state": ""
}