ارایه دهنده محتوا (Content Provider) - خدمات کامپیوتر در محل-پشتیبانی شبکه-راه اندازی شبکه

914 11 11  - 0933
شمال تهران   62 58 31 22 - 021
شرق تهران   31 32 58 77 - 021
تمامی نقاط تهران   01 77 45 88 - 021

این مطلب آموزشی در ادامه مطلب “دیتابیس و ارایه دهنده محتوا“ میباشد که لطفاً قبل از مطالعه این مطلب آنرا مطالعه فرمایید. همانطور که از بخش دیتابس متوجه شدید، دیتابیس SQLite فقط قابل دسترس در اپلیکیشنی است که آنرا ساخته است. بنابراین اگر اطلاعاتی داشته باشیم که بخواهیم در دسترس دیگر برنامه ها هم قرار دهیم از دیتابس به عنوان ارایه دهنده نمیتوانیم استفاده کنیم.

 

همانطور که در "مبانی برنامه نویسی اندروید (۱)” شرح داده شد، ارایه دهنده محتوا یکی از بلوک های اصلی سازنده اندروید است (fundamental building blocks). ارایه دهنده محتوا (ContentProvider) به اپلیکیشن ها اجازه دسترسی به اطلاعات را میدهد. در اکثر موارد دیتابیس به عنوان منبع اطلاعات استفاده میشود که ارایه دهنده محتوا از آن به عنوان منبع اطلاعاتیش استفاده میکنه. بنابراین دیتابیس تنها منبع اطلاعات ارایه دهنده محتوا نیست و از روش های دیگر مانند ذخیره در فایل یا shared Preference هم میتوان به عنوان منبع داده در ارایه دهنده محتوا استفاده کرد.

دسترسی به ارایه دهنده محتوا از طریق URI امکان پذیر است. که برای معرفی آن میبایست ارایه دهنده محتوا، قبل از هرچیز در AndroidManifest.xml معرفی شود. طریقه معرفی آن و المانهای آن در ادامه مورد بررسی قرار خواهند گرفت.

مراحل ساخت

برای ساخت یک ارایه دهنده محتوا ابتدا میبایست کلاسی ساخته شود که از کلاس android.content.ContentProvider مشتق شده باشد.

سپس در AndroidManifest.xml میبایست ارایه دهنده محتوا را معرفی نماییم. در این معرفی میبایست صفت android:authorities را حتماً استفاده کنیم که نشان میدهد ارایه دهنده محتوا کدام است. از طرف دیگر android:authorities مشخص کننده مسیر URI برای دسترسی به ارایه دهنده محتوا نیز می باشد. نمونه کد زیر نشان دهنده طریقه معرفی ارایه دهنده محتوا در فایل مانیفست است.

ارایه دهنده محتوا بصورت پیش فرض در دسترس برنامه های دیگر نیز قرار دارد. اگر میخواهید از آن فقط در برنامه خودتان استفاده کنید و در دسترس سایر برنامه ها نباشد در تگ فوق صفت android:exported را قرار دهید و مقدار آنرا False بدهید.

 مراحل کار بدین ترتیب است:

۱) ساخت کلاسی که از android.content.ContentProvider مشتق شده باشد. از آنجا که نوع این کلاس انتزاعی (Abstract) است، لذا کلیه متدهای آن میبایست اجرا (Implement) شود.  با ساخت این کلاس اکلیپس بصورت خودکار متدها را برای شما میسازد (اگر نساخت شما خودتان میبتیست آنها را بنویسید). کد زیر متدهای کلاس والد که میبایست اجرا شوند را نشان میدهد.

۲) اجرای متدهای فوق. اجازه بدهید متدهای فوق را بصورت مختصر شرح دهیم.

- ()onCreate: زمانی فراخوانده میشود که ارایه دهنده محتوا میخواهد ساخته شود.

- ()getType: این متد یک مفدار رشته ای (String) برمیگرداند که نوع URI یا اصطلاحاً MIME type آن است.

- ()insert: یک رکورد جدید به داخل ارایه دهنده محتوا اضافه میکند.

- ()query: یک query از درخواست کننده دریافت میکند. نتیجه یک آبجکت Cursor خواهد بود.

- ()update: این متد  یک رکورد از ارایه دهنده محتوا را آپدیت میکند.

- ()delete: این متد یک رکورد را از داخل ارایه دهنده محتوا پاک میکند.

 

۳) معرفی مقداری ثابت برای ارایه دهنده محتوا. هر ارایه دهنده محتوا میبایست برای نشان دادن خود (در دسترس قرار دادن خود)  یک مقدار Public Static CONTENT_URI معرفی کند تا از این مقدار برای دسترسی به آن استفاده شود. کد زیر نمونه این تعریف را نشان میدهد.

CONTENT_URI مسیر دسترسی به ارایه دهنده محتوا را مشخص میکند.

===========

در اینجا بصورت تئوری مفاهیم ارایه دهنده محتوا بررسی شد. انشالله در فیلم آموزشی که بزودی منتشر خواهم کرد موارد فوق را به همراه نمونه کد، بیشتر و بهتر بررسی خواهیم کرد.

اضافه کردن نظر

کد امنیتی
تغییر کد امنیتی

جهت مشاوره رایگان برای عقد قرارداد پشتیبانی کامپیوتر و شبکه با شماره  22315862 ، 77583231، 88457701  تماس حاصل نمایید .

درباره سرویس رایانه

سرویس رایانه از سال 1387 فعالیت خود را آغاز نموده و آماده ارایه خدمات ذیل (عقد قرارداد پشتیبانی کامپیوتر و شبکه با شرکت ها و موسسات) حتی در روز های تعطیل می باشد :

خدمات ما :

  • راه اندازی و پشتیبانی شبکه های Domain & Workgroup
  • عیب یابی سخت افزاری و نرم افزاری کامپیوتر و لپ تاپ
  • فروش کامپیوتر و قطعات و دوربین مدار بسته
  • فروش و نصب دوربین مداربسته (شبکه یا غیر شبکه) مشاهده از طریق اینترنت و تبلت و موبایل

تماس با سرویس رایانه

راه های ارتباطی جهت مشاوره رایگان و یا عقد قرارداد پشتیبانی شبکه و کامپیوتر :

  • 77583231
  • 88457701
  • 09376320561
  • این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید
  • این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید
جوملا فارسی