- البنية:
- إذا كانت علامة البيانات هي العنصر الفرعي المباشر لعنصر
<intent-filter>
:
<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" />
إذا كانت علامة البيانات هي العنصر الفرعي المباشر لعنصر<uri-relative-filter-group>
:
<data android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:fragment="string" android:fragmentPattern="string" android:fragmentPrefix="string" android:fragmentSuffix="string" android:fragmentAdvancedPattern="string" android:query="string" android:queryPattern="string" android:queryPrefix="string" android:querySuffix="string" android:queryAdvancedPattern="string" />
- المحتوى المضمّن في:
-
<intent-filter>
<uri-relative-filter-group>
- description:
- تُضيف هذه السمة مواصفات بيانات إلى فلتر أهداف. المواصفة هي
نوع بيانات، باستخدام سمة
mimeType
أو معرّف موارد منتظم (URI)، أو نوع بيانات ومعرّف موارد منتظم (URI) معًا. يتم تحديد عنوان URL من خلال سمات منفصلة لكل جزء من أجزائه:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
هذه السمات التي تحدّد تنسيق معرّف الموارد المنتظم (URI) اختيارية، ولكنها تعتمد أيضًا على بعضها البعض:
- إذا لم يتم تحديد
scheme
لفلتر الأهداف، يتم تجاهل جميع سمات عنوان URL الأخرى. - في حال عدم تحديد
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 هذه هي السمة الأساسية الأقلّ لتحديد معرّف موارد منتظم. يجب ضبط سمة
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
- جزء المسار من عنوان URL، والذي يجب أن يبدأ بـ
/
. تحدّد سمة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
وpathAdvancedPattern
في المستوى 31 من واجهة برمجة التطبيقات. - تتطابق علامة النجمة (
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
-
أداة مطابقة لجزء من معرّف الموارد المنتظم (URI) لا تُدرِج البادئة
#
. اطّلِع على ما يلي للتعرّف على معنى الأنماط المسموح بها في كل سمة.لمطابقة الأحرف التي يتم ترميزها عادةً باستخدام تنسيق URI، يجب تضمين الشكل الأوّلي (غير المشفَّر) في قيمة السمة. على سبيل المثال،
<data android:fragment="test!" />
يتطابق مع#test!
و#test%21
.تمّت إضافة هذه الميزة في المستوى 35 من واجهة برمجة التطبيقات.
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
-
أداة مطابقة لمَعلمة طلب بحث عنوان URL (وقيمة اختيارية) على سبيل المثال، يمكنك مطابقة عناوين URL التي تنتهي بـ
?param=value
مع<data android:query="param=value" />
. لا تُدرِج البادئة?
. اطّلِع على القسم أعلاه لمعرفة معنى الأنماط المسموح بها في كل سمة.لمطابقة الأحرف التي يتم ترميزها عادةً باستخدام تنسيق URI، يجب تضمين الشكل الأوّلي (غير المشفَّر) في قيمة السمة. على سبيل المثال،
<data android:query="test!" />
يتطابق مع?test!
و?test%21
.تم تقديمها في المستوى 35 من واجهة برمجة التطبيقات.
android:mimeType
- نوع وسائط MIME، مثل
image/jpeg
أوaudio/mpeg4-generic
يمكن أن يكون النوع الفرعي هو حرف البدل النجمة (*
) للإشارة إلى أنّ أي نوع فرعي مطابق.من الشائع أن يُعلن فلتر الأهداف عن عنصر
<data>
يتضمّن السمةandroid:mimeType
فقط.ملاحظة: تتم مطابقة أنواع MIME في إطار عمل Android مع مراعاة حالة الأحرف، على عكس أنواع MIME الرسمية وفقًا لمعيار RFC. نتيجةً لذلك، يجب دائمًا تحديد أنواع MIME باستخدام أحرف صغيرة.
- تمّت إتاحة هذه الميزة لأول مرة في:
- المستوى 1 من واجهة برمجة التطبيقات
- راجِع أيضًا:
<action>
<category>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2024-12-02 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2024-12-02 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]