- सिंटैक्स:
- अगर डेटा टैग, किसी
<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
एट्रिब्यूट, यूआरआई या डेटा टाइप और यूआरआई, दोनों का इस्तेमाल करके डेटा टाइप होता है. यूआरआई के हर हिस्से के लिए, अलग-अलग एट्रिब्यूट तय किए जाते हैं:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
यूआरआई फ़ॉर्मैट की जानकारी देने वाले ये एट्रिब्यूट ज़रूरी नहीं हैं. हालांकि, ये एक-दूसरे पर निर्भर हैं:
- अगर इंटेंट फ़िल्टर के लिए
scheme
तय नहीं किया गया है, तो यूआरआई के अन्य सभी एट्रिब्यूट को अनदेखा कर दिया जाता है. - अगर फ़िल्टर के लिए
host
एट्रिब्यूट की वैल्यू नहीं दी गई है, तोport
एट्रिब्यूट और सभी पाथ एट्रिब्यूट को अनदेखा कर दिया जाता है.
एक ही
<intent-filter>
एलिमेंट में मौजूद सभी<data>
एलिमेंट, एक ही फ़िल्टर में योगदान देते हैं. उदाहरण के लिए, फ़िल्टर की यह स्पेसिफ़िकेशन:<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>
<intent-filter>
में जितने चाहें उतने<data>
एलिमेंट डाले जा सकते हैं, ताकि उसे एक से ज़्यादा डेटा विकल्प दिए जा सकें. इसके किसी भी एट्रिब्यूट की डिफ़ॉल्ट वैल्यू नहीं होती.इंटेंट फ़िल्टर के काम करने के तरीके के बारे में जानकारी पाने के लिए, इंटेंट और इंटेंट फ़िल्टर और मेनिफ़ेस्ट फ़ाइल की खास जानकारी में इंटेंट फ़िल्टर सेक्शन देखें. इसमें, इंटेंट ऑब्जेक्ट को फ़िल्टर से मैच करने के नियम भी शामिल हैं.
- अगर इंटेंट फ़िल्टर के लिए
- एट्रिब्यूट:
android:scheme
- यूआरआई का स्कीम हिस्सा. यूआरआई की जानकारी देने के लिए, यह एट्रिब्यूट ज़रूरी है. फ़िल्टर के लिए, कम से कम एक
scheme
एट्रिब्यूट सेट करना ज़रूरी है. ऐसा न करने पर, यूआरआई के किसी भी अन्य एट्रिब्यूट का कोई मतलब नहीं होगा.स्कीम को कोलन के बिना दिखाया जाता है, जैसे कि
http:
के बजायhttp
.अगर फ़िल्टर में
mimeType
एट्रिब्यूट का इस्तेमाल करके डेटा टाइप सेट है, लेकिन कोई स्कीमा नहीं है, तोcontent:
औरfile:
स्कीमा का इस्तेमाल किया जाता है.ध्यान दें: आरएफ़सी के उलट, Android फ़्रेमवर्क में स्कीम मैचिंग केस-सेंसिटिव होती है. इसलिए, स्कीम के लिए हमेशा छोटे अक्षरों का इस्तेमाल करें.
android:host
-
यूआरआई अथॉरिटी का होस्ट हिस्सा. यह एट्रिब्यूट तब तक काम का नहीं है, जब तक फ़िल्टर के लिए
scheme
एट्रिब्यूट की वैल्यू भी नहीं दी जाती. एक से ज़्यादा सबडोमेन से मैच करने के लिए, होस्ट में शून्य या ज़्यादा वर्णों से मैच करने के लिए, तारे के निशान (*
) का इस्तेमाल करें. उदाहरण के लिए, होस्ट*.google.com
,www.google.com
,.google.com
, औरdeveloper.google.com
से मैच करता है.होस्ट एट्रिब्यूट का पहला वर्ण तारे का निशान होना चाहिए. उदाहरण के लिए, होस्ट
google.co.*
अमान्य है, क्योंकि तारे का निशान वाला वाइल्डकार्ड पहला वर्ण नहीं है.ध्यान दें: Android फ़्रेमवर्क में होस्ट नेम मैच करने की सुविधा, आरएफ़सी के उलट केस-सेंसिटिव होती है. इसलिए, होस्ट नेम हमेशा छोटे अक्षरों में डालें.
android:port
- यूआरआई अथॉरिटी का पोर्ट हिस्सा. यह एट्रिब्यूट सिर्फ़ तब काम का होता है, जब फ़िल्टर के लिए
scheme
औरhost
एट्रिब्यूट की वैल्यू भी दी गई हो. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- यूआरआई का पाथ हिस्सा, जो
/
से शुरू होना चाहिए.path
एट्रिब्यूट, पूरे पाथ की जानकारी देता है. इसेIntent
ऑब्जेक्ट के पूरे पाथ से मैच किया जाता है.pathPrefix
एट्रिब्यूट, पाथ का एक हिस्सा बताता है. यह हिस्सा,Intent
ऑब्जेक्ट के पाथ के शुरुआती हिस्से से मैच होता है.pathSuffix
एट्रिब्यूट,Intent
ऑब्जेक्ट में पाथ के आखिरी हिस्से से एग्ज़ैक्ट मैच होता है. साथ ही, इस एट्रिब्यूट को/
वर्ण से शुरू करने की ज़रूरत नहीं है.pathPattern
एट्रिब्यूट, एक पूरा पाथ तय करता है. यह पाथ,Intent
ऑब्जेक्ट में मौजूद पूरे पाथ से मैच होता है. हालांकि, इसमें ये वाइल्डकार्ड शामिल हो सकते हैं:- तारे का निशान (
*
), इससे पहले वाले वर्ण के क्रम से मेल खाता है. यह क्रम, 0 से लेकर कई बार हो सकता है. - पीरियड के बाद तारे का निशान (
.*
) लगाने पर, यह शून्य से लेकर कई वर्णों के किसी भी क्रम से मैच करता है.
pathAdvancedPattern
एट्रिब्यूट से पूरा पाथ पता चलता है. इसेIntent
ऑब्जेक्ट के पूरे पाथ से मैच किया जाता है. साथ ही, यह रेगुलर एक्सप्रेशन जैसे इन पैटर्न के साथ काम करता है:-
पीरियड (
.
) किसी भी वर्ण से मेल खाता है. -
सेट (
[...]
) वर्णों की रेंज से मेल खाता है. उदाहरण के लिए,[0-5]
शून्य से लेकर पांच तक के किसी भी अंक से मैच करता है, लेकिन छह से लेकर नौ तक के अंकों से नहीं.[a-zA-Z]
किसी भी अक्षर से मेल खाता है, भले ही वह कैपिटल या स्माल लेटर में हो. सेट में "नहीं"^
मॉडिफ़ायर का भी इस्तेमाल किया जा सकता है. -
तारे का निशान (
*
) वाला मॉडिफ़ायर, पिछले पैटर्न से शून्य या उससे ज़्यादा बार मैच करता है. -
प्लस (
+
) मॉडिफ़ायर, पिछले पैटर्न से एक या उससे ज़्यादा बार मैच करता है. -
रेंज (
{...}
) मॉडिफ़ायर से यह तय होता है कि कोई पैटर्न कितनी बार मैच कर सकता है.
pathAdvancedPattern
मैचर, आकलन करने का एक तरीका है. इसमें रीयल टाइम में पैटर्न के हिसाब से मैच किया जाता है. इसमें बैकट्रैकिंग की सुविधा नहीं होती.एक्सएमएल से स्ट्रिंग को पढ़ने के बाद, पैटर्न के तौर पर पार्स करने से पहले, आपको
\
को दो बार एस्केप करना होगा. ऐसा इसलिए, क्योंकि\
का इस्तेमाल एस्केप कैरेक्टर के तौर पर किया जाता है. उदाहरण के लिए, लिटरल*
को\\*
के तौर पर लिखा जाता है और लिटरल\
को\\\
के तौर पर लिखा जाता है. यह वैसा ही है जैसा Java कोड में स्ट्रिंग बनाते समय लिखा जाता है.इन पांच तरह के पैटर्न के बारे में ज़्यादा जानकारी के लिए,
PatternMatcher
क्लास मेंPATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
, औरPATTERN_ADVANCED_GLOB
के बारे में दी गई जानकारी देखें.ये एट्रिब्यूट सिर्फ़ तब काम के होते हैं, जब फ़िल्टर के लिए
scheme
औरhost
एट्रिब्यूट भी दिए गए हों.pathSuffix
औरpathAdvancedPattern
को एपीआई लेवल 31 में जोड़ा गया था. - तारे का निशान (
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
-
यूआरआई फ़्रैगमेंट के लिए मैचर.
#
प्रीफ़िक्स शामिल न करें. हर एट्रिब्यूट के मतलब और इस्तेमाल किए जा सकने वाले पैटर्न के बारे में जानने के लिए, ऊपर देखें.आम तौर पर यूआरआई कोड में बदले गए वर्णों से मैच करने के लिए, एट्रिब्यूट की वैल्यू में रॉ (कोड में नहीं बदला गया) फ़ॉर्म शामिल करें. उदाहरण के लिए,
<data android:fragment="test!" />
,#test!
और#test%21
से मैच करता है.एपीआई लेवल 35 में लॉन्च किया गया.
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
-
यूआरआई क्वेरी पैरामीटर (और वैकल्पिक रूप से, वैल्यू) के लिए मैचर. उदाहरण के लिए,
?param=value
पर खत्म होने वाले यूआरएल को<data android:query="param=value" />
से मैच किया जा सकता है.?
प्रीफ़िक्स शामिल न करें. हर एट्रिब्यूट के पैटर्न और उनके मतलब के बारे में ऊपर देखें.आम तौर पर यूआरआई में कोड में बदले गए वर्णों से मैच करने के लिए, एट्रिब्यूट की वैल्यू में रॉ (कोड में न बदला गया) फ़ॉर्म शामिल करें. उदाहरण के लिए,
<data android:query="test!" />
,?test!
और?test%21
से मैच करता है.एपीआई लेवल 35 में लॉन्च किया गया.
android:mimeType
- एमआईएमई मीडिया टाइप, जैसे कि
image/jpeg
याaudio/mpeg4-generic
. सब-टाइप के तौर पर तारे का निशान वाला वाइल्डकार्ड (*
) इस्तेमाल किया जा सकता है. इससे यह पता चलता है कि कोई भी सब-टाइप मैच करता है.आम तौर पर, इंटेंट फ़िल्टर में ऐसा
<data>
एलिमेंट शामिल होता है जिसमें सिर्फ़android:mimeType
एट्रिब्यूट होता है.ध्यान दें: Android फ़्रेमवर्क में MIME टाइप मैच करने की सुविधा, केस-सेंसिटिव होती है. यह सुविधा, आरएफ़सी MIME टाइप की तरह नहीं होती. इसलिए, हमेशा MIME टाइप बताने के लिए, छोटे अक्षरों का इस्तेमाल करें.
- पहली बार इसमें दिखाया गया:
- एपीआई लेवल 1
- यह भी देखें:
<action>
<category>
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2024-12-21 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2024-12-21 (UTC) को अपडेट किया गया."],[],[]]