<provider>

सिंटैक्स:
<provider android:authorities="list"
          android:directBootAware=["true" | "false"]
          android:enabled=["true" | "false"]
          android:exported=["true" | "false"]
          android:grantUriPermissions=["true" | "false"]
          android:icon="drawable resource"
          android:initOrder="integer"
          android:label="string resource"
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:permission="string"
          android:process="string"
          android:readPermission="string"
          android:syncable=["true" | "false"]
          android:writePermission="string" >
    ...
</provider>
इसमें शामिल है:
<application>
इसमें ये शामिल हो सकते हैं:
<meta-data>
<grant-uri-permission>
<intent-filter>
<path-permission>
विवरण:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉन्टेंट देने वाले कॉम्पोनेंट का एलान करता है. कॉन्टेंट देने वाला, ContentProvider जो ऐसे डेटा का स्ट्रक्चर्ड ऐक्सेस देता है जिसे का इस्तेमाल करें. आपके ऐप्लिकेशन में मौजूद सभी कॉन्टेंट देने वालों को मेनिफ़ेस्ट फ़ाइल में <provider> एलिमेंट होना चाहिए. ऐसा नहीं करने पर, सिस्टम को इनकी जानकारी नहीं होती और उन्हें नहीं चलाता है.

सिर्फ़ उन कॉन्टेंट देने वालों के बारे में जानकारी दें जो आपके ऐप्लिकेशन का हिस्सा हैं. इनमें, कॉन्टेंट देने वालों के बारे में जानकारी न दें आपके ऐप्लिकेशन में इस्तेमाल किए जाते हैं.

Android सिस्टम, कॉन्टेंट देने वाली कंपनियों के रेफ़रंस सेव करता है. यह जानकारी, किसी संस्था या निकाय की ओर से दी जाती है स्ट्रिंग, जो प्रोवाइडर के कॉन्टेंट यूआरआई का हिस्सा होती है. उदाहरण के लिए, मान लें कि आपको किसी ऐसे कॉन्टेंट प्रोवाइडर को ऐक्सेस करना जो स्वास्थ्य सेवा से जुड़े पेशेवरों के बारे में जानकारी सेव करता हो. ऐसा करें तो उस तरीके को कॉल करें ContentResolver.query(), जो अन्य तर्कों के साथ एक यूआरआई लेता है, जो कंपनी की पहचान करता है:

content://com.example.project.healthcareprovider/nurses/rn

content: स्कीम यूआरआई की पहचान एक कॉन्टेंट यूआरआई के तौर पर करती है, जो एक Android कॉन्टेंट प्रोवाइडर. सर्टिफ़िकेट देने वाली संस्था या निकाय com.example.project.healthcareprovider सेवा देने वाली कंपनी की पहचान करता है. कॉन्टेंट बनाने Android सिस्टम, सेवा देने वाली जानी-पहचानी कंपनियों और उनके अधिकारों की सूची में, सर्टिफ़िकेट देने वाली संस्था या निकाय का पता लगाता है. सबस्ट्रिंग nurses/rn एक पाथ है, जिसका इस्तेमाल कॉन्टेंट देने वाला करता है का इस्तेमाल करें.

<provider> एलिमेंट में, सेवा देने वाली कंपनी के बारे में बताने पर android:name आर्ग्युमेंट में स्कीम या पाथ शामिल न करें, सिर्फ़ देने के लिए कहा जा सकता है.

सामग्री देने वालों का इस्तेमाल करने और उन्हें डेवलप करने के बारे में जानकारी के लिए, देखें कॉन्टेंट देने वाले.

विशेषताएं:
android:authorities
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एक या इससे ज़्यादा यूआरआई संस्थाओं की सूची, जो कॉन्टेंट देने वाले से मिले डेटा की पहचान करती हैं. एक से ज़्यादा अथॉरिटी के नाम की सूची बनाएं. इसके लिए, उनके नामों को सेमीकोलन से अलग करें. विवादों से बचने के लिए, अथॉरिटी नामों, जैसे कि com.example.provider.cartoonprovider. आम तौर पर, यह नाम है की, ContentProvider सब-क्लास की मदद से बनाई गई है जो प्रोवाइडर को लागू करती है

कोई डिफ़ॉल्ट सेटिंग नहीं है. कम से कम एक प्राधिकरण का उल्लेख होना चाहिए.

android:enabled
कॉन्टेंट देने वाले को सिस्टम से इंस्टैंशिएट किया जा सकता है या नहीं. यह समय है अगर हो सकता है, तो "true" और अगर नहीं है, तो "false". डिफ़ॉल्ट वैल्यू "true" है.

<application> एलिमेंट की अपनी खासियत होती है सभी पर लागू होने वाला enabled एट्रिब्यूट ऐप्लिकेशन के कॉम्पोनेंट, जिनमें कॉन्टेंट देने वाले लोग भी शामिल हैं. कॉन्टेंट बनाने <application> और <provider> विशेषताएं दोनों "true" होनी चाहिए, क्योंकि वे दोनों कॉन्टेंट देने वाले को चालू करने के लिए, डिफ़ॉल्ट रूप से होती हैं. अगर इनमें से कोई एक है "false", सेवा देने वाली कंपनी बंद है. इसे इंस्टैंशिएट नहीं किया जा सकता.

android:directBootAware

क्या कॉन्टेंट देने वाले को Direct-Boot जानकारी है—यानी, क्या यह उपयोगकर्ता के डिवाइस को अनलॉक करने से पहले काम करता है.

ध्यान दें: इस दौरान डायरेक्ट बूट एक ऐसा कॉन्टेंट होता है आपके ऐप्लिकेशन में मौजूद सेवा देने वाली कंपनी सिर्फ़ उसी डेटा को ऐक्सेस कर सकती है जो डिवाइस से सुरक्षित स्टोरेज.

डिफ़ॉल्ट वैल्यू "false" है.

android:exported
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है क्या कॉन्टेंट देने वाले दूसरे ऐप्लिकेशन के इस्तेमाल के लिए उपलब्ध है.
  • "true": ईमेल की सेवा देने वाली कंपनी, दूसरे ऐप्लिकेशन के लिए उपलब्ध है. कोई भी ऐप्लिकेशन ये काम कर सकता है: इसे ऐक्सेस करने के लिए प्रोवाइडर के कॉन्टेंट यूआरआई का इस्तेमाल करें, जो .
  • "false": ईमेल की सेवा देने वाली कंपनी, दूसरे ऐप्लिकेशन के लिए उपलब्ध नहीं है. शुरू android:exported="false" सेवा देने वाली कंपनी के ऐक्सेस को अपने का इस्तेमाल करें. सिर्फ़ वे ऐप्लिकेशन जिनका यूज़र आईडी (यूआईडी) और सेवा देने वाली कंपनी एक ही हो या जिन्हें अस्थायी रूप से के ज़रिए android:grantUriPermissions एलिमेंट है, तो उसकी ऐक्सेस है.

यह एट्रिब्यूट, एपीआई लेवल 17 में पेश किया गया था. इसलिए, एपीआई लेवल का इस्तेमाल करने वाले सभी डिवाइसों पर 16 और उससे कम वैल्यू, इस एट्रिब्यूट का इस्तेमाल करने पर काम करती है: "true". अगर आपने सेट किया है, तो android:targetSdkVersion अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है 17 या उससे ज़्यादा पर सेट हो जाता है, तो एपीआई वाले डिवाइसों के लिए डिफ़ॉल्ट वैल्यू "false" है लेवल 17 और उससे ऊपर का लेवल.

आपके पास android:exported="false" को सेट करने का विकल्प है. इसके बाद भी, अपनी इन चीज़ों के ऐक्सेस को सीमित किया जा सकता है के साथ अनुमतियां सेट करके permission एट्रिब्यूट की वैल्यू सबमिट करें.

android:grantUriPermissions
क्या आम तौर पर ऐसे लोगों के पास के डेटा को ऐक्सेस करना है, तो अनुमति दी जा सकती है. प्रतिबंध को कुछ समय के लिए कम करने के लिए, readPermission, writePermission, permission, और exported एट्रिब्यूट.

अगर अनुमति दी जा सकती है, तो यह "true" है और अगर नहीं दिया गया है, तो "false" है. अगर आपने "true" का विकल्प चुना है, तो किसी भी कॉन्टेंट को अनुमति दी जा सकती है कंपनी का डेटा शामिल है. अगर "false", तो सिर्फ़ अनुमति दी जा सकती है में मौजूद डेटा के सबसेट को <grant-uri-permission> सबएलिमेंट, और वे कौनसे प्रॉडक्ट हैं. डिफ़ॉल्ट वैल्यू "false" है.

अनुमति देना, ऐप्लिकेशन के किसी कॉम्पोनेंट को एक बार देने का एक तरीका है डेटा का ऐक्सेस देता है, जिसे किसी अनुमति से सुरक्षित किया गया है. उदाहरण के लिए, अगर किसी ईमेल पते से संदेश में एक अटैचमेंट है, तो मेल ऐप्लिकेशन इस पते पर कॉल कर सकता है: इसे खोलने के लिए, सही दर्शक का इस्तेमाल किया जा सकता है. हालांकि, दर्शक के पास सामान्य टाइटल नहीं है कॉन्टेंट देने वाले का सारा डेटा देखने की अनुमति देती हैं.

ऐसे मामलों में, अनुमति FLAG_GRANT_READ_URI_PERMISSION अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है और FLAG_GRANT_WRITE_URI_PERMISSION Intent ऑब्जेक्ट को फ़्लैग करते हैं, जो कॉम्पोनेंट को चालू करता है. उदाहरण के लिए, मेल ऐप्लिकेशन FLAG_GRANT_READ_URI_PERMISSION को Context.startActivity() को Intent की जानकारी भेजी गई. अनुमति खास है Intent के यूआरआई में.

अगर यह सुविधा चालू की जाती है, तो इस एट्रिब्यूट को "true" पर सेट करके ऐसा किया जा सकता है या <grant-uri-permission> को परिभाषित करके सब-एलिमेंट, कॉल Context.revokeUriPermission() जब कवर किया गया यूआरआई को प्रोवाइडर से मिटा दिया जाता है.

<grant-uri-permission> भी देखें एलिमेंट.

android:icon
कॉन्टेंट देने वाले की जानकारी देने वाला आइकॉन. यह एट्रिब्यूट, ड्रॉ किए जा सकने वाले ऐसे संसाधन के रेफ़रंस के तौर पर सेट किया गया है जिसमें शामिल है इमेज की परिभाषा. अगर यह सेट नहीं है, तो ऐप्लिकेशन के लिए तय किया गया आइकॉन इसके बजाय, इसका इस्तेमाल पूरी तरह से किया जाता है. ज़्यादा जानकारी के लिए, <application> देखें एलिमेंट का icon एट्रिब्यूट.
android:initOrder
कॉन्टेंट देने वाले को इंस्टैंशिएट किए जाने का क्रम, समान प्रक्रिया के ज़रिए होस्ट किए गए दूसरे कॉन्टेंट देने वालों के मुकाबले. जब कॉन्टेंट देने वालों के बीच डिपेंडेंसी हो, तो इसे सेट करें एट्रिब्यूट का इस्तेमाल करके यह पक्का किया जाता है कि वे ऑर्डर में बनाए गए हों उन डिपेंडेंसी के हिसाब से ज़रूरी होता है. यह वैल्यू एक पूर्णांक होती है. बड़ी संख्याओं को पहले शुरू किया जा रहा है.
android:label
दिए गए कॉन्टेंट के लिए ऐसा लेबल जिसे उपयोगकर्ता आसानी से पढ़ सके. अगर यह एट्रिब्यूट सेट नहीं किया गया है, तो ऐप्लिकेशन के लिए पूरे ऐप्लिकेशन के लिए सेट किया गया लेबल का इस्तेमाल किया गया है. ज़्यादा जानकारी के लिए, <application> एलिमेंट देखें label एट्रिब्यूट की वैल्यू सबमिट करें.

आम तौर पर, लेबल किसी स्ट्रिंग संसाधन के रेफ़रंस के तौर पर सेट होता है, ताकि इसे यूज़र इंटरफ़ेस की अन्य स्ट्रिंग की तरह ही स्थानीय भाषा में लिखा जा सकता है. हालांकि, ऐप्लिकेशन डेवलप करते समय, आपकी सुविधा के हिसाब से, इसे रॉ स्ट्रिंग के तौर पर भी सेट किया जा सकता है.

android:multiprocess
अगर ऐप्लिकेशन एक से ज़्यादा प्रोसेस में चलता है, तो इस एट्रिब्यूट से तय होता है कि कॉन्टेंट देने वाले के एक से ज़्यादा इंस्टेंस बनाए जाते हैं. अगर "true", ऐप्लिकेशन की हर प्रोसेस का अपना खुद का कॉन्टेंट देने वाला ऑब्जेक्ट होता है. अगर आपने "false", ऐप्लिकेशन की प्रोसेस कॉन्टेंट देने वाला सिर्फ़ एक ऑब्जेक्ट शेयर करती हैं. डिफ़ॉल्ट वैल्यू "false" है.

इस फ़्लैग को "true" पर सेट करने से, कैंपेन की परफ़ॉर्मेंस बेहतर हो सकती है यह इंटरप्रोसेस कम्यूनिकेशन का ओवरहेड है, लेकिन यह मेमोरी को भी बढ़ाता है प्रत्येक प्रोसेस का फ़ुटप्रिंट.

android:name
उस क्लास का नाम जो कॉन्टेंट देने वाले को लागू करता है, जो कि एक सब-क्लास है ContentProvider. आम तौर पर, यह पूरी तरह क्वालिफ़ाइड माना जाता है क्लास का नाम, जैसे "com.example.project.TransportationProvider". हालांकि, शॉर्टहैंड की तरह अगर नाम का पहला वर्ण एक विराम चिह्न है, तो इसे उस पैकेज के नाम में जोड़ा जाता है जो <manifest> एलिमेंट.

कोई डिफ़ॉल्ट सेटिंग नहीं है. नाम बताना ज़रूरी है.

android:permission
उस अनुमति का नाम जिसे क्लाइंट को कॉन्टेंट देने वाले का डेटा शामिल करते हैं. यह एट्रिब्यूट सेट करने का एक आसान तरीका है एक से ज़्यादा बार काम करने की अनुमति मिल सकती है. हालांकि, readPermission, writePermission और grantUriPermissions एट्रिब्यूट को प्राथमिकता दी जाती है नहीं.

अगर readPermission विशेषता को भी सेट कर दिया जाता है, तो यह सामग्री देने वाले की क्वेरी के लिए ऐक्सेस को नियंत्रित करती है. अगर writePermission एट्रिब्यूट सेट है, तो यह प्रोवाइडर के डेटा में बदलाव करने के ऐक्सेस को कंट्रोल करता है.

अनुमतियों के बारे में ज़्यादा जानकारी के लिए, यहां जाएं: अनुमतियां सेक्शन पर जाएं और सुरक्षा से जुड़ी सलाह.

android:process
उस प्रोसेस का नाम जिसमें कॉन्टेंट देने वाला संगठन चलाता है. आम तौर पर, किसी ऐप्लिकेशन के सभी कॉम्पोनेंट, का इस्तेमाल करें. इसका नाम ऐप्लिकेशन पैकेज के नाम के समान है.

कॉन्टेंट बनाने <application> एलिमेंट process एट्रिब्यूट की मदद से, डिफ़ॉल्ट तौर पर सेट हो जाता है. हालांकि, हर कॉम्पोनेंट, डिफ़ॉल्ट वैल्यू को बदल सकता है इसकी process एट्रिब्यूट की मदद से, कई प्रोसेस में लागू होता है.

अगर इस एट्रिब्यूट को असाइन किया गया नाम कोलन (:) से शुरू होता है, तो एक नया प्रक्रिया, ऐप्लिकेशन के लिए निजी होती है, जिसे ज़रूरत पड़ने पर बनाया जाता है और उस प्रक्रिया में गतिविधि चलती रहती है.

अगर प्रोसेस का नाम अंग्रेज़ी के छोटे अक्षर से शुरू होता है, तो गतिविधि चलती है ग्लोबल प्रोसेस में जोड़ा जा सकता है, बशर्ते उसके पास ऐसा करने की अनुमति हो. इससे अलग-अलग ऐप्लिकेशन के कॉम्पोनेंट, एक प्रोसेस शेयर कर पाते हैं. इससे अलग-अलग ऐप्लिकेशन के कॉम्पोनेंट संसाधन का इस्तेमाल.

android:readPermission

एक ऐसी अनुमति जिसके लिए क्लाइंट को कॉन्टेंट देने वाले से क्वेरी करनी चाहिए.

अगर सेवा देने वाली कंपनी, android:grantUriPermissions को सेट करती है से लेकर "true" तक या अगर कोई क्लाइंट ग्राहक की शर्तों को पूरा करता है <grant-uri-permission> सब-एलिमेंट के आधार पर, क्लाइंट कॉन्टेंट को कुछ समय के लिए पढ़ सकता है कंपनी का डेटा शामिल है.

permission और writePermission एट्रिब्यूट.

android:syncable
क्या डेटा, कॉन्टेंट देने वाले के कंट्रोल में है को सर्वर पर मौजूद डेटा के साथ सिंक किया जा सकता है. यह "true" है और अगर नहीं है, तो "false".
android:writePermission

ऐसी अनुमति जिसके लिए क्लाइंट को डेटा में बदलाव करना होता है कॉन्टेंट देने वाले के नियंत्रण में होता है.

अगर सेवा देने वाली कंपनी, android:grantUriPermissions को सेट करती है से लेकर "true" तक या अगर कोई क्लाइंट ग्राहक की शर्तों को पूरा करता है <grant-uri-permission> सब-एलिमेंट के आधार पर, क्लाइंट कॉन्टेंट में बदलाव करने के लिए कुछ समय के लिए लिखने का ऐक्सेस पा सकता है कंपनी का डेटा शामिल है.

permission और readPermission एट्रिब्यूट.

इसमें पेश किया गया:
एपीआई लेवल 1
यह भी देखें:
कॉन्टेंट देने वाले