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