ابتدائیہ کے لئے Android سبق پارٹ 4: مواد فراہم کرنے والا



اس اینڈروئیڈ ٹیوٹوریل میں مواد فراہم کرنے والے کے تصورات پر تبادلہ خیال کیا گیا ہے۔ یہ اینڈروئیڈ سسٹم میں ڈیٹا انٹرچینج کی سہولت فراہم کرنے والا اینڈروئیڈ کا ایک اہم بلڈنگ بلاک ہے۔

ابتدائیہ کے لئے ہمارے پچھلے اینڈروئیڈ سبق میں ، ہم نے Android کے پہلے تین عمارتوں پر تبادلہ خیال کیا: سرگرمی ، نیت اور خدمات . ابتدائیہ افراد کے لئے اینڈروئیڈ ٹیوٹوریلز کے اس سلسلے میں یہ مضمون چوتھا ہے اور اس پر بحث کرنے والے مواد فراہم کنندہ ، جو اینڈرائیڈ سسٹم کا ایک اور بہت اہم جزو ہے۔

مواد فراہم کرنے والا آپ کے Android سسٹم کا مڈل مین ہے ، اور مختلف اینڈرائڈ ایپلی کیشنز کے مابین ڈیٹا کا تبادلہ کرنے میں مدد فراہم کرتا ہے۔ آئیے اس اینڈروئیڈ ٹیوٹوریل میں اس کی تفصیلات پر تھوڑا سا غور کریں۔





ابتدائیہ -4 بونس کیلئے Android سبق: مواد فراہم کرنے والا کوڈ یہاں ڈاؤن لوڈ کریں . اس ٹیوٹوریل سے گزرنے کے بعد آپ کوڈ چاہیں گے! :)

[dl url = '#' کلاس = 'eModal eModal-6 ″ عنوان =' ڈاؤن لوڈ کوڈ 'desc =' 'قسم =' 'سیدھ کریں' 'کے لئے =' ڈاؤن لوڈ ']]



Android سبق: مواد فراہم کرنے والا

مختلف ایپلی کیشنز میں ڈیٹا شیئرنگ اور ڈیٹا ہیرا پھیری کی اجازت دینے کے لئے مواد فراہم کرنے والا مرکزی ڈیٹا اسٹور یا گودام تک رسائی کی سہولت فراہم کرتا ہے۔

Android سسٹم کے API میں ڈیفالٹ مواد فراہم کنندگان کی کچھ مثالیں یہ ہیں:

اینڈروئیڈ ٹیوٹوریلز: اینڈروئیڈ سسٹم میں طے شدہ مواد فراہم کرنے والے



یہ مواد فراہم کرنے والے صارف کو بنیادی ڈیٹا بیس سے خلاصہ کرنے کی اجازت دیتے ہیں۔ عام طور پر ، مواد فراہم کرنے والے بنیادی ڈیٹا بیس کو ذخیرہ کرنے کے لئے SQLite کا استعمال کرتے ہیں۔

آئیے اچھے پرانے فیس بک ایپلی کیشن کی ہمیشہ مددگار مثال لیں ، جس سے پچھلے اینڈروئیڈ ٹیوٹوریل میں بھی چیزوں کو آسان بنانے میں ہماری مدد ملی ہے!

جاوا میں اسکینر کلاس کیا ہے؟

آپ سب نے اپنی سماجی رابطے کی زندگی کے کسی نہ کسی موقع پر ، اپنے فیس بک ٹائم لائن پر ایک تصویر اپ لوڈ کی ، ٹھیک ہے! آپ یہ کیسے کرتے ہیں؟

دیوار پر فوٹو بٹن پر کلک کرنے پر ، آپ فوٹو گیلری میں پہنچ جاتے ہیں۔ وہاں سے آپ اپلوڈ کرنے کیلئے ایک فوٹو منتخب کرسکتے ہیں۔

کے پچھلے مضامین کو پڑھنے کے بعد Android سبق آموز سلسلہ ، لہذا آپ کو سرگرمیوں اور مقاصد کے بارے میں معلوم ہے ، آپ جانتے ہیں کہ ایسا ہی ہوتا ہے:

آپ کا فیس بک وال ایک 'سرگرمی' ہے۔ جیسے ہی آپ فوٹو بٹن پر کلک کرتے ہیں تو ، ایک 'مقصد' گزر جاتا ہے ، جو پیغام پہنچاتا ہے اور 'مواد فراہم کنندہ' (فوٹو گیلری) کھل جاتا ہے۔ نیٹ ورک اپ لوڈ 'SERVICE' کا استعمال کرتے ہوئے تصویر اپ لوڈ کی گئی ہے۔

یہ جاننے کے لئے یہ براہ راست ویڈیو دیکھیں کہ آپ کے فیس بک ایپلیکیشن کے اندر کونٹینٹ پرووائڈر کام کرتا ہے۔

اینڈرائیڈ سسٹم کو مواد فراہم کرنے والوں کی ضرورت کیوں ہے؟

مشمولیت فراہم کرنے والوں کی ضرورت اس لئے پیدا ہوتی ہے کیونکہ ایک ایپلی کیشن میں تیار کردہ ڈیٹا بیس دوسرے اطلاق کو نظر نہیں آتا ہے۔

ایس کیو ایلائٹ کا استعمال کرتے ہوئے مختلف ایپلی کیشنز میں ڈیٹا بیس بنانا اور اسٹور کرنا آسان ہے ، تاہم مسئلہ یہ ہے ، اینڈروئیڈ میں ایک ڈیٹا بیس اس ایپلی کیشن کے لئے نجی ہے جو اسے تخلیق کرتا ہے . اینڈروئیڈ میں اسٹوریج کا کوئی مشترکہ ایسا علاقہ نہیں ہے جس میں ہر ایپلی کیشن رسائی حاصل کرسکے۔ لہذا ، مختلف ایپلی کیشنز کو ڈیٹا بیس کے استعمال کے ل Android ، اینڈروئیڈ سسٹم کو ایک انٹرفیس کی ضرورت ہے جو اس طرح کے انٹر ایپلی کیشن اور انٹر پروسیس ڈیٹا ایکسچینج کی اجازت دیتا ہے۔ یہ وہ جگہ ہے جہاں مواد فراہم کرنے والا کھیلنے آتا ہے۔

کیا مجھے واقعی میں ایک مواد فراہم کرنے والے کی ضرورت ہے؟

1) آپ اگر آپ نجی ڈیٹا بیس چاہتے ہیں تو آپ کو اپنا فراہم کنندہ تیار کرنے کی ضرورت نہیں ہے کسی خاص ایپلی کیشن کے ل ((یہ ڈیٹا بیس اس کے بنائے ہوئے ایپلیکیشنز کے لئے قابل رسائی نہیں ہوگا)۔

2) تاہم آپ کسٹم تلاش کی تجاویز فراہم کرنے کیلئے کسٹم فراہم کنندہ کی ضرورت ہے اپنے اپلیکیشن سسٹم میں۔

3) آپ کو مواد فراہم کرنے والے کی بھی ضرورت ہوگی آپ کی درخواست سے پیچیدہ ڈیٹا کو دوسرے ایپلیکیشنز میں کاپی اور پیسٹ کرنے کیلئے۔

کونٹینٹ پرووائڈر کے ذریعہ تائید شدہ آپریشنز کیا ہیں؟

مواد فراہم کرنے والے درج ذیل بنیادی کاموں کی حمایت کرتے ہیں:

ایک) استفسار کرنا: مخصوص URI پر مبنی ، تمام اشیاء کیلئے مواد فراہم کرنے والے سے استفسار کرتا ہے۔

2) حذف کریں: مشمول فراہم کرنے والے کے ڈیٹا بیس سے مخصوص اشیاء کو حذف کرتا ہے۔

3) اپ ڈیٹ: ڈیٹا بیس میں موجود اشیاء کو اپ ڈیٹ کرتا ہے۔

4) داخل کریں: ڈیٹا بیس میں نیا اعتراض داخل کرتا ہے۔

مشمولیت فراہم کنندہ میں کارروائی کرنے کے اقدامات

مرحلہ 1: مواد فراہم کرنے والے تک رسائی

ContentResolver کلائنٹ آبجیکٹ مواد فراہم کرنے والے سے ڈیٹا تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے۔ یہ فراہم کنندہ آبجیکٹ کے ساتھ بات چیت کرتا ہے ، جو اعداد و شمار تک رسائی کی درخواست کو قبول کرتا ہے اور مطلوبہ نتائج واپس کرتا ہے۔ فراہم کنندہ اور فراہم کنندہ کلائنٹ آبجیکٹ کے ذریعہ فراہم کردہ ڈیٹا ایکسچینج انٹرفیس مختلف عملوں / ایپلی کیشنز میں رابطے کی اجازت دیتا ہے۔

جس اطلاق کو ڈیٹا بیس تک رسائی حاصل کرنے کی ضرورت ہے اسے اس کا اعلان کرنا ہوگا اور اپنی منشور فائل میں اجازت کی درخواست کرنا ہوگی۔ ہمارے بعد کے Android سبق میں اس پر تفصیل سے تبادلہ خیال کیا جائے گا۔

مواد یو آر آئی

کونٹینٹ یو آر آئی ایک دلائل میں سے ایک ہے جو فراہم کنندہ میں ڈیٹا کی شناخت کے لئے استعمال ہوتا ہے۔ اس کے چار حصے ہیں:

ایک) اسکیم: مواد فراہم کرنے والے کے لئے اسکیم کی مستقل قیمت ہوتی ہے: 'مواد'۔

c ++ سرنی ترتیب دیں

2) اقتدار: یہ فراہم کنندہ کا علامتی نام ہے ، اور ہر ایک کے لئے منفرد ہے۔ اس طرح ہم بہت سارے لوگوں کی فہرست سے مطلوبہ مواد فراہم کنندہ کو اکٹھا کرتے ہیں۔

3) راستہ: راہ مکمل ڈیٹا بیس سے مطلوبہ ڈیٹا کو الگ کرنے میں مدد کرتا ہے . مثال کے طور پر ، کال لاگ ان مشمولات فراہم کنندہ مختلف راستوں کا استعمال کرتے ہوئے مس شدہ کالوں ، موصولہ کالوں کے درمیان فرق کرتا ہے۔

4) ID: یہ لازمی جزو نہیں ہے ، اور ہوسکتا ہے کہ URI میں موجود نہ ہو لیکن اگر موجود ہے تو ، یہ عددی ہونا چاہئے۔ مثال کے طور پر، اگر آپ اپنے میڈیا مواد فراہم کنندہ سے مخصوص میوزک فائل تک رسائی حاصل کرنا چاہتے ہیں تو ، آپ بھی ایک شناخت متعین کریں گے .

عمل

فراہم کنندہ اتھارٹی کا استعمال کرتے ہوئے ، ContentResolver درست مواد فراہم کنندہ کی نشاندہی کرتا ہے (کیونکہ ہر مواد فراہم کرنے والے کے لئے اتھارٹی منفرد ہے)۔ یہ کام کرنے کے بعد ، URI کا راستہ جزو صحیح (درخواست کردہ) ڈیٹا ٹیبل کو منتخب کرنے کے لئے استعمال ہوتا ہے۔ اگر کوئی ID موجود ہے تو ، فراہم کنندہ کو معلوم ہوگا کہ صحیح اعداد و شمار کی درخواست کی جارہی ہے۔

یو آر آئی کی دو اقسام ہیں:

مزید برآں ، یو آر آئی میں بھی محدود معلومات ہوسکتی ہیں۔

مرحلہ 2: مواد فراہم کرنے والے سے ڈیٹا بازیافت کرنے کا طریقہ

اگرچہ اب ContentResolver کو ڈیٹا ٹیبل تک رسائی حاصل ہے ، وہ اس وقت تک مطلوبہ ڈیٹا کو بازیافت نہیں کرسکتا جب تک کہ درخواست نہ ہو 'پڑھنے تک رسائی کی اجازت' اس خاص فراہم کنندہ کے لئے۔ یہ اجازت ہر مشمولیت فراہم کرنے والے کی مینی فیسٹ فائل میں بیان کی گئی ہے۔

یہ سب ایک درخواست ہے (جو اس ڈیٹا بیس تک رسائی حاصل کرنا چاہتا ہے) اس اجازت کی درخواست کرنا ہے۔

اب جیسا کہ پہلے اس اینڈروئیڈ ٹیوٹوریل میں تبادلہ خیال کیا گیا ہے ، مواد فراہم کرنے والے کا استعمال کرتے ہوئے چار آپریشن کئے جاسکتے ہیں . ہم ایک ایک کرکے ایک دوسرے کے اوپر چلے جائیں گے۔

QUERY

اب ، آپ نے فراہم کنندہ تک رسائی حاصل کی ہے ، اور اس سے اعداد و شمار کو بازیافت کرنے کی اجازت حاصل ہے۔ اگلا قدم ہے فراہم کنندہ سے مطلوبہ کارروائی کی درخواست کرنے کے لئے سوال بنائیں .

استفسار کے دوران یہاں دلائل استعمال کیے گئے ہیں۔

ایک) سے نفرت : یہ بالکل اسی طرح کام کرتا ہے جیسا کہ اوپر بیان کیا گیا ہے۔

2) پروجیکشن: استفسار کرنا چاہئے پورے ڈیٹا بیس ٹیبل سے کالموں کا ایک سیٹ واپس کریں . اسے پروجیکشن کہا جاتا ہے۔ منسوخ ہونے سے تمام کالم واپس آجائیں گے ، جو ناکارہ ہے۔

3) انتخاب کی شق: TO فلٹر جس کا اعلان کرتے ہوئے کہ قطاروں کو واپس کرنا ہے ، ایک ایس کیو ایل جہاں کی شق کے بطور فارمیٹ (جہاں خود کو چھوڑ کر)۔ منسوخ ہونے سے دیئے گئے URI کی تمام قطاریں واپس آجائیں گی۔

مثال کے طور پر ، اگر آپ اپنی ایڈریس بک کے سرچ کالم میں حرف تہج (ی ('P' کہیے) درج کریں گے ، تو وہ 'P' سے شروع ہونے والی تمام رابطوں کی تفصیلات واپس کردے گی۔ تاہم ، اگر آپ سرچ بار میں کچھ داخل نہیں کرتے ہیں تو ، رابطوں کی مکمل فہرست بازیافت کردی جاتی ہے (انتخابی شق ایسے معاملات میں ’کالعدم‘ ہوجاتی ہے)۔

4) انتخاب کی دلیل: آپ سلیکشن میں '؟ s' شامل کرسکتے ہیں ، جس کو سلیکشن آرگس کی قدروں کے ذریعہ تبدیل کیا جائے گا ، اس ترتیب میں کہ وہ سلیکشن میں نمودار ہوں۔

5) ترتیب: شق کے ذریعہ ایس کیو ایل آرڈر (خود آرڈر کو چھوڑ کر)۔ منسوخ ہونے سے یہ نتائج برآمد ہوں گے جو غیر منظم ہوسکتے ہیں۔

کوڈ طلب کرنے کے لئے مثال:

  • رابطوں میں فون نمبر تلاش کرنا
کرسر کرسر = کنٹینسولور.کویری (رابطےکونٹریکٹ۔ رابطے۔کونٹ۔ یو آر آئی ، کالعدم ، کالعدم ، کالعدم) اینٹی کاؤنٹی = کرسر.بیٹکونٹ () اگر (گنتی> 0) ring سٹرنگ کنٹیکٹ ڈیٹیلز = '' جبکہ (کرسر.میوو ٹو نیکسٹ ()) { سٹرنگ کالم آئڈ = رابطے سے متعلق رابطے۔ رابطے۔_ ID انٹ کرسر انڈیکس = کرسر. گیٹ کالم انڈیکس (کالم آئڈ) سٹرنگ آئی ڈی = کرسر ڈریٹ (کرسر انڈیکس) سٹرنگ کا نام = کرسر.بیٹ سٹرنگ (کرسر. ایٹ کالم انڈیکس (رابطے کے رابطے۔ رابطے.ڈیسپل ایکس) انٹٹرکینٹ = (کرسر.بیٹ سٹرنگ (کرسر. بیٹ کالم انڈیکس (روابط)۔ رابطوں۔ ہاسپھون_ک))) اگر (numCount> 0) urs کرسر فون کرسر = کنٹریسولور.کوری (رابطے سے رابطہ کریں۔ کامن ڈیٹا کائنڈز۔ فون ۔کونٹ. ، نئی اسٹرنگ [] {id} ، منسوخ) جبکہ (فون کرسر.میوٹو ٹو نیکسٹ ()) ring سٹرنگ فون نہیں = فون کرسر.بیٹ سٹرنگ (فون کرسر. گیٹ کالم انڈیکس (رابطے کنٹریکٹ. کامن ڈیٹا کنڈز۔ فون. نمبر)) رابطے کی تفصیلات + = 'نام:' + نام + '، فون نمبر:' + فون نہیں + '' C فون کرسر۔ بند ()}}

اندراج

ہمیں فرض کریں کہ آپ اپنی ایڈریس بک میں نئے رابطے داخل کرنا چاہتے ہیں۔ ContentValues ​​اعتراض ان اضافوں کو کرنے کے لئے استعمال ہوتا ہے۔ اس کو حاصل کرنے کے لئے ContentValue آبجیکٹ کیز اور مواد فراہم کرنے والے کالموں کا مقابلہ کرنا چاہئے۔ اس کی ایک مثال یہ ہے۔

اضافے کے لئے کوڈ کا مثال:

  • یہ آپریشن 'رجنیकानت' اور '9988999888' نام کے ساتھ نئی اندراج داخل کرنا ہے
// آپریشن ارای لسٹ آپٹس = نئی ارای لسٹ () int RawContactInsertIndex = ops.size () ops.add (ContentPoviderOperation.newInsert (RawContacts.CONTENT_URI) .WithWalue (RawContacts.ACCOUNT_TYPE ، null) .WithWalue. ()) ops.add (ContentPoviderOperation. NewInsert (Data.CONTENT_URI) .WalueBackReferences (Data.RAW_CONTACT_ID، RawContactInsertIndex) .Withue (Data.MIMETYPE، StructuredName.CONTENT_ITEM_TYPE) '(DIX) کے ساتھ بنائیں۔ ) ops.add (ContentPoviderOperation.newInsert (Data.CONTENT_URI) .WalueBackReferences (Data.RAW_CONTACT_ID ، RawContactInsertIndex)) کے ساتھ .Withue (Data.MIMETYPE ، فون.CONTENT_ITEM_TYPE) .WithWalue (فون 98) .98 فون کے ساتھ ہے۔ 1998) فون کے ساتھ ہے۔ ، فون.TYPE_MOBILE). (بل) (get) کنٹینٹ ریسولور () بنائیں۔ اطلاق بیچ (روابط)

اپ ڈیٹنگ

مواد فراہم کرنے والے کو اپ ڈیٹ کرنے کے لئے درج ذیل دلائل استعمال کیے جاتے ہیں۔

ایک) سے نفرت: مواد فراہم کرنے والے کا یو آر آئی

2) مواد کی قیمتیں: اس میں وہ اقدار ہیں جو موجودہ اعداد و شمار کی جگہ لیں گی۔

جاوا میں ایک ایکس ایم ایل فائل کو پارس کرنا

3) انتخاب کی شق: اس سے تازہ کاری کے ل the مخصوص ریکارڈوں کو منتخب کرنے میں مدد مل سکتی ہے

4) انتخاب کی دلیل: آپ سلیکشن میں '؟ s' شامل کرسکتے ہیں ، جس کو سلیکشن آرگس کی قدروں کے ذریعہ تبدیل کیا جائے گا ، اس ترتیب میں کہ وہ سلیکشن میں نمودار ہوں۔

ایک بار پھر ، ContentValues ​​آبجیکٹ کی چابیاں لازمی طور پر مواد فراہم کرنے والے کے کالموں سے ملتی ہیں ورنہ ، تازہ کاری نہیں ہوگی۔

تازہ کاری کے لئے کوڈ کا مثال:

  • وہ فون نمبر اپ ڈیٹ کرنا جہاں نام 'رجنیکنت' ہے
اسٹرنگ جہاں = رابطے سے رابطہ کریں۔ ڈیٹا.ڈیئسپلیل + '=؟ 'سٹرنگ [] پیرامس = نئی سٹرنگ [] Raj 'رجنیکانٹ'} ارای لسٹ ops.add (ContentProviderOperation.newUpdate (رابطے کا معاہدہ۔ ڈیٹا۔ CONTENT_URI)۔ بشمول سلیکشن (جہاں ، پیرم)) رابطے کی باتیں (رابطے کی باتیں۔ فون.بیگ ، '7657654432 .bu10' '۔ بلٹ ()) getContentResolver (). لاگو بیچ (روابط)

حذف کرنا

ڈیلیشن اسی طرح کے دلائل کو استعمال کرتے ہیں جس میں اپ ڈیٹ کی طرح ContentValues ​​دلیل کو مستثنیٰ کیا جاتا ہے ، جس کی ضرورت نہیں ہے کیونکہ کوئی متبادل قیمتیں نہیں ہوں گی۔

کوڈ کو حذف کرنے کے لئے مثال:

  • وہ رابطہ حذف کریں جہاں نام 'رجنیکنت' ہے۔
اسٹرنگ جہاں = رابطے سے رابطہ کریں۔ ڈیٹا.ڈیئسپلیل + '=؟ 'سٹرنگ [] پیرامس = نئی سٹرنگ [] {'رجنیکانٹ'} ارای لسٹ ops = new ArrayList () ops.add (ContentProviderOperation.newDelete (رابطے کے معاہدے۔ راؤ رابطے. CONTENT_URI) کے ساتھ. سلیکشن (جہاں ، پیرامیج) تشکیل (آرٹ)) ) .اپلی بیچ (روابط)

انٹریٹ آپریشن کی صورت میں ، یو آر آئی ڈائرکٹری پر مبنی ہونا چاہئے۔ دوسرے تمام معاملات میں ، یو آر آئی یا تو ID پر مبنی یا ڈائریکٹری پر مبنی ہوسکتی ہے۔

ہمیں امید ہے ابتدائیہ کے لئے اینڈروئیڈ ٹیوٹوریل: حصہ 5 سمجھنا بہت مشکل نہیں تھا! ہم اس کے بعد کے Android سبق میں مواد فراہم کرنے والے کے بارے میں مزید گفتگو کریں گے۔ اس وقت تک بنیادی باتیں سیکھنے سے لطف اٹھائیں!

کیا آپ کو اس اینڈروئیڈ سبق میں کوئی شک ہے؟ ہم سے پوچھیں

مبارک سیکھنا!

اس اینڈروئیڈ ٹیوٹوریل کو بنانے میں مندرجہ ذیل وسائل استعمال ہوئے تھے! سرکاری Android ڈویلپرز ، Edureka.in

آپ یہ متعلقہ پوسٹس بھی پسند کرسکتے ہیں: