कॉन्टेंट देने वाली कंपनियां, किसी ऐप्लिकेशन को अपने या दूसरे ऐप्लिकेशन से सेव किए गए डेटा का ऐक्सेस मैनेज करने में मदद कर सकती हैं. साथ ही, वे अन्य ऐप्लिकेशन के साथ डेटा शेयर करने का तरीका भी उपलब्ध करा सकती हैं. ये डेटा को इकट्ठा करते हैं और डेटा की सुरक्षा तय करने के लिए, तरीके उपलब्ध कराते हैं. कॉन्टेंट प्रोवाइडर, स्टैंडर्ड इंटरफ़ेस होते हैं. ये एक प्रोसेस में मौजूद डेटा को, दूसरी प्रोसेस में चल रहे कोड से कनेक्ट करते हैं.
कॉन्टेंट प्रोवाइडर को लागू करने के कई फ़ायदे हैं. सबसे अहम बात यह है कि आपके पास कॉन्टेंट प्रोवाइडर को कॉन्फ़िगर करने का विकल्प होता है, ताकि दूसरे ऐप्लिकेशन आपके ऐप्लिकेशन के डेटा को सुरक्षित तरीके से ऐक्सेस कर सकें और उसमें बदलाव कर सकें. इस बारे में ज़्यादा जानकारी, पहले चित्र में दी गई है.
![कॉन्टेंट उपलब्ध कराने वाली कंपनियां, स्टोरेज का ऐक्सेस कैसे मैनेज करती हैं, इसकी खास जानकारी देने वाला डायग्राम.](https://developer.android.google.cn/static/guide/topics/providers/images/content-provider-overview.png?authuser=3&hl=hi)
पहली इमेज. कॉन्टेंट उपलब्ध कराने वाली कंपनियां, स्टोरेज का ऐक्सेस कैसे मैनेज करती हैं, इसकी खास जानकारी देने वाला डायग्राम.
अगर आपको डेटा शेयर करना है, तो कॉन्टेंट उपलब्ध कराने वाली कंपनियों की सेवाओं का इस्तेमाल करें. अगर आपको डेटा शेयर नहीं करना है, तो आपको इनका इस्तेमाल करने की ज़रूरत नहीं है. हालांकि, इनका इस्तेमाल किया जा सकता है, क्योंकि ये एक ऐसा एब्स्ट्रैक्शन उपलब्ध कराते हैं जिसकी मदद से, अपने ऐप्लिकेशन के डेटा स्टोरेज के लागू होने में बदलाव किए जा सकते हैं. ऐसा करने से, आपके डेटा के ऐक्सेस पर निर्भर अन्य ऐप्लिकेशन पर कोई असर नहीं पड़ता.
इस स्थिति में, सिर्फ़ कॉन्टेंट उपलब्ध कराने वाली कंपनी पर असर पड़ता है, न कि कॉन्टेंट को ऐक्सेस करने वाले ऐप्लिकेशन पर. उदाहरण के लिए, किसी अन्य स्टोरेज के लिए SQLite डेटाबेस को बदला जा सकता है, जैसा कि दूसरी इमेज में दिखाया गया है.
![कॉन्टेंट की सेवा देने वाली कंपनी के स्टोरेज को माइग्रेट करने की इमेज.](https://developer.android.google.cn/static/guide/topics/providers/images/content-provider-migration.png?authuser=3&hl=hi)
दूसरी इमेज. कॉन्टेंट की सेवा देने वाली कंपनी के स्टोरेज को माइग्रेट करने की इमेज.
कई अन्य क्लास, ContentProvider
क्लास पर निर्भर करती हैं:
इनमें से किसी भी क्लास का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन में कॉन्टेंट प्रोवाइडर को लागू करना होगा. सिंक अडैप्टर फ़्रेमवर्क के साथ काम करते समय, आपके पास वैकल्पिक तौर पर स्टब कॉन्टेंट प्रोवाइडर बनाने का विकल्प भी होता है. ज़्यादा जानकारी के लिए, स्टब कॉन्टेंट प्रोवाइडर बनाना देखें. इसके अलावा, आपको इन मामलों में कॉन्टेंट की सेवा देने वाली अपनी कंपनी की ज़रूरत होगी:
- अपने ऐप्लिकेशन में, खोज के लिए पसंद के मुताबिक सुझाव लागू करने के लिए.
- विजेट को अपने ऐप्लिकेशन का डेटा दिखाने के लिए.
- अपने ऐप्लिकेशन से दूसरे ऐप्लिकेशन में जटिल डेटा या फ़ाइलें कॉपी और चिपकाने के लिए.
Android फ़्रेमवर्क में कॉन्टेंट देने वाली ऐसी कंपनियां शामिल हैं जो ऑडियो, वीडियो, इमेज, और निजी संपर्क जानकारी जैसे डेटा को मैनेज करती हैं. इनमें से कुछ को android.provider
पैकेज के लिए रेफ़रंस दस्तावेज़ में देखा जा सकता है. इन सेवाओं को कुछ पाबंदियों के साथ, किसी भी Android ऐप्लिकेशन से ऐक्सेस किया जा सकता है.
कॉन्टेंट प्रोवाइडर का इस्तेमाल, डेटा स्टोरेज के अलग-अलग सोर्स का ऐक्सेस मैनेज करने के लिए किया जा सकता है. इनमें स्ट्रक्चर्ड डेटा, जैसे कि SQLite रिलेशनल डेटाबेस या अस्ट्रक्चर्ड डेटा, जैसे कि इमेज फ़ाइलें, दोनों शामिल हैं. Android पर उपलब्ध स्टोरेज टाइप के बारे में ज़्यादा जानने के लिए, डेटा और फ़ाइल स्टोरेज की खास जानकारी और डेटा स्टोरेज डिज़ाइन करना लेख पढ़ें.
कॉन्टेंट उपलब्ध कराने वालों के लिए फ़ायदे
कॉन्टेंट उपलब्ध कराने वाली कंपनियां, डेटा को ऐक्सेस करने की अनुमतियों को बेहतर तरीके से कंट्रोल करने की सुविधा देती हैं. आपके पास, अपने ऐप्लिकेशन में मौजूद कॉन्टेंट की सेवा देने वाली कंपनी के लिए ऐक्सेस की पाबंदी लगाने का विकल्प होता है. इसके अलावा, आपके पास, अन्य ऐप्लिकेशन से डेटा ऐक्सेस करने की अनुमति देने का विकल्प भी होता है. इसके अलावा, डेटा को पढ़ने और उसमें बदलाव करने के लिए, अलग-अलग अनुमतियां कॉन्फ़िगर की जा सकती हैं. कॉन्टेंट की सेवा देने वाली कंपनियों का इस्तेमाल सुरक्षित तरीके से करने के बारे में ज़्यादा जानने के लिए, डेटा स्टोरेज के लिए सुरक्षा से जुड़ी सलाह और कॉन्टेंट की सेवा देने वाली कंपनियों से मिली अनुमतियां देखें.
अपने ऐप्लिकेशन में अलग-अलग डेटा सोर्स को ऐक्सेस करने के लिए, कॉन्टेंट प्रोवाइडर का इस्तेमाल किया जा सकता है. उदाहरण के लिए, आपका ऐप्लिकेशन SQLite डेटाबेस में स्ट्रक्चर्ड रिकॉर्ड के साथ-साथ, वीडियो और ऑडियो फ़ाइलें भी स्टोर कर सकता है. इस डेटा को ऐक्सेस करने के लिए, कॉन्टेंट उपलब्ध कराने वाली किसी कंपनी का इस्तेमाल किया जा सकता है.
साथ ही, CursorLoader
ऑब्जेक्ट, कॉन्टेंट उपलब्ध कराने वाली कंपनियों पर निर्भर रहते हैं, ताकि वे एक साथ कई क्वेरी चला सकें. इसके बाद, वे आपके ऐप्लिकेशन की यूज़र इंटरफ़ेस (यूआई) लेयर में नतीजे दिखाते हैं. बैकग्राउंड में डेटा लोड करने के लिए, CursorLoader
का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए,
लोडर देखें.
कॉन्टेंट उपलब्ध कराने वाली कंपनियों के बारे में ज़्यादा जानकारी के लिए, यहां दिए गए विषय पढ़ें:
- कॉन्टेंट देने वाली कंपनी के लिए बुनियादी बातें
- किसी मौजूदा कॉन्टेंट प्रोवाइडर का इस्तेमाल करके, डेटा को ऐक्सेस और अपडेट करने का तरीका.
- कॉन्टेंट प्रोवाइडर बनाना
- कॉन्टेंट प्रोवाइडर को डिज़ाइन और लागू करने का तरीका.
- कैलेंडर की सेवा देने वाली कंपनी के बारे में खास जानकारी
- Android प्लैटफ़ॉर्म का हिस्सा होने वाले Calendar Provider को ऐक्सेस करने का तरीका.
- संपर्क सूची देने वाली कंपनी
- Android प्लैटफ़ॉर्म का हिस्सा होने वाले Contacts Provider को ऐक्सेस करने का तरीका.