- सिंटैक्स:
- अगर डेटा टैग, किसी
<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="project1.example.com" /> <data android:scheme="something-else" android:host="project2.example.com" android:path="/page1" /> ... </intent-filter>
इस फ़ंक्शन के बराबर है:
<intent-filter . . . > <data android:scheme="something" /> <data android:scheme="something-else" /> <data android:host="project1.example.com" /> <data android:host="project2.example.com" /> <data android:path="/page1" /> ... </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:pathandroid:pathPrefixandroid:pathSuffixandroid:pathPatternandroid:pathAdvancedPattern- यूआरआई का पाथ हिस्सा, जो
/से शुरू होना चाहिए.pathएट्रिब्यूट, पूरे पाथ की जानकारी देता है. इसेIntentऑब्जेक्ट के पूरे पाथ से मैच किया जाता है.pathPrefixएट्रिब्यूट, पाथ का एक हिस्सा बताता है. यह हिस्सा,Intentऑब्जेक्ट के पाथ के शुरुआती हिस्से से मैच होता है.pathSuffixएट्रिब्यूट,Intentऑब्जेक्ट में पाथ के आखिरी हिस्से से एग्ज़ैक्ट मैच होता है. साथ ही, इस एट्रिब्यूट को/वर्ण से शुरू करने की ज़रूरत नहीं है.pathPatternएट्रिब्यूट, पूरा पाथ बताता है. इसेIntentऑब्जेक्ट के पूरे पाथ से मैच किया जाता है. हालांकि, इसमें ये वाइल्डकार्ड शामिल हो सकते हैं:- पीरियड (
.) किसी भी वर्ण से मेल खाता है. -
तारे का निशान (
*), इससे पहले वाले वर्ण के क्रम से मेल खाता है. यह क्रम, शून्य से लेकर कई बार हो सकता है. -
पीरियड के बाद तारे का निशान (
.*) लगाने पर, यह शून्य से लेकर कई वर्णों के किसी भी क्रम से मैच करता है.
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:fragmentandroid:fragmentPrefixandroid:fragmentSuffixandroid:fragmentPatternandroid:fragmentAdvancedPattern-
यूआरआई फ़्रैगमेंट के लिए मैचर.
#प्रीफ़िक्स शामिल न करें. हर एट्रिब्यूट के मतलब और इस्तेमाल किए जा सकने वाले पैटर्न के बारे में जानने के लिए, ऊपर देखें.आम तौर पर यूआरआई कोड में बदले गए वर्णों से मैच करने के लिए, एट्रिब्यूट की वैल्यू में रॉ (कोड में नहीं बदला गया) फ़ॉर्म शामिल करें. उदाहरण के लिए,
<data android:fragment="test!" />,#test!और#test%21से मैच करता है.एपीआई लेवल 35 में लॉन्च किया गया.
android:queryandroid:queryPrefixandroid:querySuffixandroid:queryPatternandroid: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 और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया.
[null,null,["आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया."],[],[]]