বিষয়বস্তু প্রদানকারীরা একটি অ্যাপ্লিকেশনকে নিজের দ্বারা সঞ্চিত বা অন্যান্য অ্যাপের দ্বারা সঞ্চিত ডেটাতে অ্যাক্সেস পরিচালনা করতে এবং অন্যান্য অ্যাপের সাথে ডেটা ভাগ করার উপায় প্রদান করতে সহায়তা করতে পারে। তারা ডেটা এনক্যাপসুলেট করে এবং ডেটা সুরক্ষা সংজ্ঞায়িত করার জন্য প্রক্রিয়া সরবরাহ করে। বিষয়বস্তু প্রদানকারী হল স্ট্যান্ডার্ড ইন্টারফেস যা একটি প্রক্রিয়ায় ডেটা সংযোগ করে অন্য প্রক্রিয়ায় চলমান কোডের সাথে।
একটি বিষয়বস্তু প্রদানকারী বাস্তবায়ন অনেক সুবিধা আছে. সবচেয়ে গুরুত্বপূর্ণভাবে, আপনি অন্য অ্যাপ্লিকেশনগুলিকে নিরাপদে আপনার অ্যাপ ডেটা অ্যাক্সেস এবং সংশোধন করতে দেওয়ার জন্য একটি বিষয়বস্তু প্রদানকারীকে কনফিগার করতে পারেন, যেমন চিত্র 1 এ দেখানো হয়েছে।
![বিষয়বস্তু প্রদানকারীরা কীভাবে স্টোরেজ অ্যাক্সেস পরিচালনা করে তার ওভারভিউ ডায়াগ্রাম।](https://developer.android.com/static/guide/topics/providers/images/content-provider-overview.png?authuser=4&hl=bn)
চিত্র 1. বিষয়বস্তু প্রদানকারীরা কীভাবে স্টোরেজ অ্যাক্সেস পরিচালনা করে তার ওভারভিউ ডায়াগ্রাম।
আপনি যদি ডেটা ভাগ করার পরিকল্পনা করেন তবে সামগ্রী সরবরাহকারী ব্যবহার করুন৷ আপনি যদি ডেটা ভাগ করার পরিকল্পনা না করেন তবে আপনাকে সেগুলি ব্যবহার করতে হবে না, তবে আপনি বেছে নিতে পারেন কারণ তারা একটি বিমূর্ততা প্রদান করে যা আপনাকে আপনার অ্যাপ্লিকেশন ডেটা সঞ্চয়স্থান বাস্তবায়নে পরিবর্তন করতে দেয় যা আপনার অ্যাক্সেসের উপর নির্ভর করে এমন অন্যান্য অ্যাপ্লিকেশনগুলিকে প্রভাবিত না করেই তথ্য
এই পরিস্থিতিতে, শুধুমাত্র আপনার বিষয়বস্তু প্রদানকারী প্রভাবিত এবং এটি অ্যাক্সেস করা অ্যাপ্লিকেশন নয়। উদাহরণস্বরূপ, আপনি বিকল্প স্টোরেজের জন্য একটি SQLite ডাটাবেস অদলবদল করতে পারেন, যেমন চিত্র 2 এ দেখানো হয়েছে।
![স্থানান্তরিত বিষয়বস্তু প্রদানকারী সঞ্চয়স্থানের চিত্র।](https://developer.android.com/static/guide/topics/providers/images/content-provider-migration.png?authuser=4&hl=bn)
চিত্র 2. স্থানান্তরিত বিষয়বস্তু প্রদানকারী সঞ্চয়স্থানের চিত্র।
অন্যান্য কয়েকটি ক্লাস ContentProvider
শ্রেণীর উপর নির্ভর করে:
আপনি যদি এই ক্লাসগুলির যেকোনও ব্যবহার করেন, তাহলে আপনাকে আপনার অ্যাপ্লিকেশনে একটি বিষয়বস্তু প্রদানকারীকে প্রয়োগ করতে হবে। সিঙ্ক অ্যাডাপ্টার ফ্রেমওয়ার্কের সাথে কাজ করার সময় আপনি বিকল্প হিসাবে একটি স্টাব সামগ্রী প্রদানকারীও তৈরি করতে পারেন। আরও তথ্যের জন্য, একটি অসম্পূর্ণ সামগ্রী প্রদানকারী তৈরি করুন দেখুন। এছাড়াও, নিম্নলিখিত ক্ষেত্রে আপনার নিজের সামগ্রী প্রদানকারীর প্রয়োজন:
- আপনার অ্যাপ্লিকেশনে কাস্টম অনুসন্ধান পরামর্শ বাস্তবায়ন করতে।
- আপনার অ্যাপ্লিকেশন ডেটা উইজেটগুলিতে প্রকাশ করতে।
- আপনার অ্যাপ্লিকেশন থেকে অন্যান্য অ্যাপ্লিকেশনে জটিল ডেটা বা ফাইলগুলি কপি এবং পেস্ট করতে।
অ্যান্ড্রয়েড ফ্রেমওয়ার্কে কন্টেন্ট প্রদানকারী অন্তর্ভুক্ত যারা অডিও, ভিডিও, ছবি এবং ব্যক্তিগত যোগাযোগের তথ্যের মতো ডেটা পরিচালনা করে। আপনি android.provider
প্যাকেজের রেফারেন্স ডকুমেন্টেশনে তালিকাভুক্ত কিছু দেখতে পারেন। কিছু বিধিনিষেধ সহ, এই প্রদানকারীরা যেকোনো Android অ্যাপ্লিকেশনে অ্যাক্সেসযোগ্য।
একটি বিষয়বস্তু প্রদানকারীকে ব্যবহার করা যেতে পারে বিভিন্ন ধরনের ডেটা স্টোরেজ উৎসে অ্যাক্সেস পরিচালনা করতে, উভয় কাঠামোগত ডেটা, যেমন SQLite রিলেশনাল ডাটাবেস, অথবা অসংগঠিত ডেটা যেমন ইমেজ ফাইল। Android-এ উপলব্ধ স্টোরেজের ধরন সম্পর্কে আরও তথ্যের জন্য, ডেটা এবং ফাইল স্টোরেজ ওভারভিউ এবং ডিজাইন ডেটা স্টোরেজ দেখুন।
বিষয়বস্তু প্রদানকারীর সুবিধা
বিষয়বস্তু প্রদানকারীরা ডেটা অ্যাক্সেস করার অনুমতিগুলির উপর দানাদার নিয়ন্ত্রণ অফার করে। আপনি শুধুমাত্র আপনার অ্যাপ্লিকেশনের মধ্যে থাকা একটি বিষয়বস্তু প্রদানকারীর অ্যাক্সেস সীমাবদ্ধ করতে, অন্যান্য অ্যাপ্লিকেশন থেকে ডেটা অ্যাক্সেস করার জন্য কম্বল অনুমতি প্রদান করতে বা ডেটা পড়ার এবং লেখার জন্য বিভিন্ন অনুমতি কনফিগার করতে বেছে নিতে পারেন। বিষয়বস্তু সরবরাহকারীদের নিরাপদে ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, ডেটা সঞ্চয়স্থান এবং সামগ্রী প্রদানকারীর অনুমতিগুলির নিরাপত্তা টিপস দেখুন৷
আপনি আপনার অ্যাপ্লিকেশনে বিভিন্ন ডেটা উত্স অ্যাক্সেস করার জন্য বিশদ বিমূর্ত করতে একটি বিষয়বস্তু প্রদানকারী ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশন একটি SQLite ডাটাবেসে কাঠামোগত রেকর্ড সংরক্ষণ করতে পারে, সেইসাথে ভিডিও এবং অডিও ফাইল। আপনি এই সমস্ত ডেটা অ্যাক্সেস করতে একটি সামগ্রী প্রদানকারী ব্যবহার করতে পারেন।
এছাড়াও, CursorLoader
অবজেক্টগুলি অ্যাসিঙ্ক্রোনাস কোয়েরি চালানোর জন্য বিষয়বস্তু প্রদানকারীদের উপর নির্ভর করে এবং তারপর ফলাফলগুলি আপনার অ্যাপ্লিকেশনের UI স্তরে ফেরত দেয়। ব্যাকগ্রাউন্ডে ডেটা লোড করতে CursorLoader
ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, লোডার দেখুন।
নিম্নলিখিত বিষয়গুলি আরও বিস্তারিতভাবে বিষয়বস্তু প্রদানকারীদের বর্ণনা করে:
- বিষয়বস্তু প্রদানকারী বেসিক
- একটি বিদ্যমান সামগ্রী প্রদানকারী ব্যবহার করে কিভাবে ডেটা অ্যাক্সেস এবং আপডেট করবেন।
- একটি বিষয়বস্তু প্রদানকারী তৈরি করুন
- কিভাবে আপনার নিজের কন্টেন্ট প্রদানকারীকে ডিজাইন এবং বাস্তবায়ন করবেন।
- ক্যালেন্ডার প্রদানকারীর ওভারভিউ
- অ্যান্ড্রয়েড প্ল্যাটফর্মের অংশ ক্যালেন্ডার প্রদানকারীকে কীভাবে অ্যাক্সেস করবেন।
- পরিচিতি প্রদানকারী
- অ্যান্ড্রয়েড প্ল্যাটফর্মের অংশ এমন পরিচিতি প্রদানকারীকে কীভাবে অ্যাক্সেস করবেন।