- نحو:
- اگر تگ داده فرزند مستقیم
<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>
- توضیحات:
- مشخصات داده را به فیلتر قصد اضافه می کند. مشخصات یک نوع داده است که از ویژگی
mimeType
، یک URI یا هر دو نوع داده و URI استفاده می کند. یک URI با ویژگی های جداگانه برای هر یک از بخش های آن مشخص می شود:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
این ویژگیها که فرمت URI را مشخص میکنند اختیاری هستند، اما به یکدیگر وابسته هستند:
- اگر
scheme
برای فیلتر intent مشخص نشده باشد، تمام ویژگی های 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>
قرار دهید تا چندین گزینه داده به آن بدهید. هیچ یک از ویژگی های آن دارای مقادیر پیش فرض نیست.برای کسب اطلاعات در مورد نحوه عملکرد فیلترهای intent، از جمله قوانین نحوه تطبیق اشیاء قصد با فیلترها، Intents and Intent Filters و بخش Intent filters را در نمای کلی فایل مانیفست ببینید.
- اگر
- صفات:
-
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
مطابقت دارد و از الگوهای regex مانند زیر پشتیبانی می کند:- نقطه (
.
) با هر کاراکتری مطابقت دارد. - یک مجموعه (
[...]
) با محدوده کاراکترها مطابقت دارد. به عنوان مثال،[0-5]
با یک رقم تک رقمی از 0 تا 5 مطابقت دارد اما نه از 6 تا 9.[a-zA-Z]
با هر حرفی، صرف نظر از حروف کوچک، مطابقت دارد. مجموعه ها همچنین از اصلاح کننده "not"^
پشتیبانی می کنند. - تعدیل کننده ستاره (
*
) با الگوی قبلی صفر یا چند بار مطابقت دارد. - اصلاح کننده پلاس (
+
) با الگوی قبلی یک یا چند بار مطابقت دارد. - اصلاح کننده محدوده (
{...}
) تعداد دفعاتی را که یک الگو می تواند مطابقت داشته باشد را مشخص می کند.
pathAdvancedPattern
یک پیادهسازی ارزیابی است که در آن تطبیق در برابر الگو بهصورت بلادرنگ و بدون پشتیبانی از پسگرد انجام میشود.از آنجا که
\
به عنوان یک کاراکتر escape هنگام خواندن رشته از XML استفاده می شود، قبل از اینکه به عنوان یک الگو تجزیه شود، باید دوبار escape کنید. به عنوان مثال، یک*
تحت اللفظی به صورت\\*
و یک\
تحت اللفظی به صورت\\\
نوشته می شود. این مانند چیزی است که هنگام ساخت رشته در کد جاوا می نویسید.برای اطلاعات بیشتر در مورد این پنج نوع الگو، به توضیحات
PATTERN_LITERAL
،PATTERN_PREFIX
،PATTERN_SIMPLE_GLOB
،PATTERN_SUFFIX
، وPATTERN_ADVANCED_GLOB
در کلاسPatternMatcher
مراجعه کنید.این ویژگیها تنها در صورتی معنا دارند که ویژگیهای
scheme
وhost
نیز برای فیلتر مشخص شده باشند.pathSuffix
وpathAdvancedPattern
در سطح API 31 معرفی شدند. - یک ستاره (
-
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
یک تطبیق برای یک قطعه URI. پیشوند
#
را وارد نکنید. برای معنی و الگوهای مجاز در هر ویژگی به بالا مراجعه کنید.برای تطبیق کاراکترهایی که معمولاً URI کدگذاری میشوند، فرم خام (غیر رمزگذاریشده) را در مقدار مشخصه قرار دهید. به عنوان مثال،
<data android:fragment="test!" />
منطبق#test!
و#test%21
.در سطح API 35 معرفی شده است.
-
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
یک تطبیق برای پارامتر کوئری URI (و در صورت تمایل، یک مقدار). برای مثال، میتوانید URIهایی که به
?param=value
ختم میشوند را با<data android:query="param=value" />
مطابقت دهید. را شامل نمی شود?
پیشوند برای معنی و الگوهای مجاز در هر ویژگی به بالا مراجعه کنید.برای مطابقت با کاراکترهایی که معمولاً با URI کدگذاری میشوند، فرم خام (غیر رمزگذاریشده) را در مقدار مشخصه قرار دهید. به عنوان مثال،
<data android:query="test!" />
مسابقات?test!
و?test%21
.در سطح API 35 معرفی شده است.
-
android:mimeType
- یک نوع رسانه MIME، مانند
image/jpeg
یاaudio/mpeg4-generic
. نوع فرعی می تواند علامت علامت ستاره (*
) باشد تا نشان دهد که هر نوع فرعی مطابقت دارد.معمولاً فیلتر intent یک عنصر
<data>
را اعلام می کند که فقط ویژگیandroid:mimeType
را شامل می شود.توجه : تطبیق نوع MIME در چارچوب Android، برخلاف انواع رسمی RFC MIME، به حروف بزرگ و کوچک حساس است. در نتیجه، همیشه انواع MIME را با استفاده از حروف کوچک مشخص کنید.
-
- معرفی شده در:
- API سطح 1
- همچنین ببینید:
-
<action>
<category>
- نحو:
- اگر تگ داده فرزند مستقیم
<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>
- توضیحات:
- مشخصات داده را به فیلتر قصد اضافه می کند. مشخصات یک نوع داده است که از ویژگی
mimeType
، یک URI یا هر دو نوع داده و URI استفاده می کند. یک URI با ویژگی های جداگانه برای هر یک از بخش های آن مشخص می شود:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
این ویژگیها که فرمت URI را مشخص میکنند اختیاری هستند، اما به یکدیگر وابسته هستند:
- اگر
scheme
برای فیلتر intent مشخص نشده باشد، تمام ویژگی های 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>
قرار دهید تا چندین گزینه داده به آن بدهید. هیچ یک از ویژگی های آن دارای مقادیر پیش فرض نیست.برای کسب اطلاعات در مورد نحوه عملکرد فیلترهای intent، از جمله قوانین نحوه تطبیق اشیاء قصد با فیلترها، Intents and Intent Filters و بخش Intent filters را در نمای کلی فایل مانیفست ببینید.
- اگر
- صفات:
-
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
مطابقت دارد و از الگوهای regex مانند زیر پشتیبانی می کند:- نقطه (
.
) با هر کاراکتری مطابقت دارد. - یک مجموعه (
[...]
) با محدوده کاراکترها مطابقت دارد. به عنوان مثال،[0-5]
با یک رقم تک رقمی از 0 تا 5 مطابقت دارد اما نه از 6 تا 9.[a-zA-Z]
با هر حرفی، صرف نظر از حروف کوچک، مطابقت دارد. مجموعه ها همچنین از اصلاح کننده "not"^
پشتیبانی می کنند. - تعدیل کننده ستاره (
*
) با الگوی قبلی صفر یا چند بار مطابقت دارد. - اصلاح کننده پلاس (
+
) با الگوی قبلی یک یا چند بار مطابقت دارد. - اصلاح کننده محدوده (
{...}
) تعداد دفعاتی را که یک الگو می تواند مطابقت داشته باشد را مشخص می کند.
pathAdvancedPattern
یک پیادهسازی ارزیابی است که در آن تطبیق در برابر الگو بهصورت بلادرنگ و بدون پشتیبانی از پسگرد انجام میشود.از آنجا که
\
به عنوان یک کاراکتر escape هنگام خواندن رشته از XML استفاده می شود، قبل از اینکه به عنوان یک الگو تجزیه شود، باید دوبار escape کنید. به عنوان مثال، یک*
تحت اللفظی به صورت\\*
و یک\
تحت اللفظی به صورت\\\
نوشته می شود. این مانند چیزی است که هنگام ساخت رشته در کد جاوا می نویسید.برای اطلاعات بیشتر در مورد این پنج نوع الگو، به توضیحات
PATTERN_LITERAL
،PATTERN_PREFIX
،PATTERN_SIMPLE_GLOB
،PATTERN_SUFFIX
، وPATTERN_ADVANCED_GLOB
در کلاسPatternMatcher
مراجعه کنید.این ویژگیها تنها در صورتی معنا دارند که ویژگیهای
scheme
وhost
نیز برای فیلتر مشخص شده باشند.pathSuffix
وpathAdvancedPattern
در سطح API 31 معرفی شدند. - یک ستاره (
-
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
یک تطبیق برای یک قطعه URI. پیشوند
#
را وارد نکنید. برای معنی و الگوهای مجاز در هر ویژگی به بالا مراجعه کنید.برای تطبیق کاراکترهایی که معمولاً URI کدگذاری میشوند، فرم خام (غیر رمزگذاریشده) را در مقدار مشخصه قرار دهید. به عنوان مثال،
<data android:fragment="test!" />
منطبق#test!
و#test%21
.در سطح API 35 معرفی شده است.
-
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
یک تطبیق برای پارامتر کوئری URI (و در صورت تمایل، یک مقدار). برای مثال، میتوانید URIهایی که به
?param=value
ختم میشوند را با<data android:query="param=value" />
مطابقت دهید. را شامل نمی شود?
پیشوند برای معنی و الگوهای مجاز در هر ویژگی به بالا مراجعه کنید.برای مطابقت با کاراکترهایی که معمولاً با URI کدگذاری میشوند، فرم خام (غیر رمزگذاریشده) را در مقدار مشخصه قرار دهید. به عنوان مثال،
<data android:query="test!" />
مسابقات?test!
و?test%21
.در سطح API 35 معرفی شده است.
-
android:mimeType
- یک نوع رسانه MIME، مانند
image/jpeg
یاaudio/mpeg4-generic
. نوع فرعی می تواند علامت علامت ستاره (*
) باشد تا نشان دهد که هر نوع فرعی مطابقت دارد.معمولاً فیلتر intent یک عنصر
<data>
را اعلام می کند که فقط ویژگیandroid:mimeType
را شامل می شود.توجه : تطبیق نوع MIME در چارچوب Android، برخلاف انواع رسمی RFC MIME، به حروف بزرگ و کوچک حساس است. در نتیجه، همیشه انواع MIME را با استفاده از حروف کوچک مشخص کنید.
-
- معرفی شده در:
- API سطح 1
- همچنین ببینید:
-
<action>
<category>