<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>
description:
تشير إلى مكوّن موفّر المحتوى. موفر المحتوى هو فئة فرعية من ContentProvider التي توفِّر إمكانية الوصول المنظّم إلى البيانات التي يديرها التطبيق. يجب تحديد جميع موفّري المحتوى في تطبيقك في العنصر <provider> في ملف البيان. وإلا لن يتمكّن النظام من التعرّف عليها. ولا يقوم بتشغيلها.

يُرجى الإفصاح فقط عن موفّري المحتوى الذين يشكلون جزءًا من تطبيقك. عدم الإعلان عن موفّري المحتوى في التطبيقات الأخرى التي تستخدمها في تطبيقك.

يخزِّن نظام Android المراجع إلى موفّري المحتوى وفقًا لجهة إصدار. سلسلة، وهي جزء من معرّف الموارد المنتظم (URI) للمحتوى الخاص بالموفِّر. على سبيل المثال، لنفترض أنك تريد الوصول إلى موفِّر محتوى يخزِّن معلومات عن خبراء الرعاية الصحية. للقيام بذلك، في هذه الحالة، عليك استدعاء الطريقة ContentResolver.query()، الذي يأخذ معرف الموارد المنتظم (URI) الذي يحدد الموفِّر، من بين الوسيطات الأخرى:

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

يحدّد مخطط content: معرّف الموارد المنتظم (URI) كمعرّف الموارد المنتظم (URI) للمحتوى الذي يشير إلى أحد موفّري محتوى Android. السلطة وتتعرّف السمة com.example.project.healthcareprovider على مقدّم الخدمة نفسه. تشير رسالة الأشكال البيانية يبحث نظام Android عن الجهة المعنية في قائمة مزوّدي الخدمة المعروفين والسلطات التابعة لهم. السلسلة الفرعية nurses/rn هي مسار يستخدمه موفّر المحتوى لتحديد مجموعات فرعية من بيانات المزود.

عند تحديد الموفّر في العنصر <provider>، يمكنك المخطط أو المسار في الوسيطة android:name، والسلطة.

للحصول على معلومات عن استخدام مزودي المحتوى وتطويرهم، راجع موفّرو المحتوى:

:
android:authorities
قائمة بمراجع URI واحدة أو أكثر تحدد البيانات التي يقدّمها موفّر المحتوى. أدرج عدة جهات اتصال عن طريق الفصل بين أسمائها بفاصلة منقوطة. لتجنب التعارضات، استخدم اصطلاح تسمية نمط Java لأسماء الهيئات، مثل com.example.provider.cartoonprovider. عادةً ما يكون هو الاسم من الفئة الفرعية ContentProvider التي تطبّق موفّر الخدمة

لا يوجد إعداد افتراضي. يجب تحديد هيئة إصدار واحدة على الأقل.

android:enabled
ما إذا كان بإمكان النظام إنشاء مثيل لموفّر المحتوى من المهم "true" إذا كان ذلك ممكنًا، و"false" إذا لم يكن ممكنًا. القيمة التلقائية "true".

العنصر <application> له خاصية سمة enabled التي تنطبق على الكل مكونات التطبيق، بما في ذلك موفّرو المحتوى. تشير رسالة الأشكال البيانية <application> و<provider> يجب أن تكون قيمة السمتين "true"، حيث إنهما بشكل افتراضي، لكي يتم تمكين موفّر المحتوى. إذا كانت أيّ منهما "false"، مقدّم الخدمة غير مفعّل. ولا يمكن إنشاء مثيل.

android:directBootAware

ما إذا كان موفِّر المحتوى على دراية بالتمهيد المباشر وما إذا كان من الممكن تشغيلها قبل أن يفتح المستخدم قفل الجهاز.

ملاحظة: خلال التشغيل المباشر، وهو محتوى المستخدم في تطبيقك يمكنه فقط الدخول إلى البيانات المخزنة في حماية الجهاز

القيمة التلقائية هي "false".

android:exported
ما إذا كان موفر المحتوى متاحًا لاستخدام التطبيقات الأخرى أم لا.
  • "true": موفِّر الهوية متاح للتطبيقات الأخرى. يمكن لأي تطبيق استخدام معرف الموارد المنتظم (URI) للمحتوى الخاص بالموفِّر للوصول إليه، مع مراعاة الأذونات المحددة المزود.
  • "false": موفِّر الخدمة غير متاح للتطبيقات الأخرى. ضبط android:exported="false" لحصر إمكانية الوصول إلى مقدّم الخدمة على التطبيقات. التطبيقات التي لها رقم تعريف المستخدم (UID) نفسه الذي يستخدمه الموفّر التطبيقات التي تم منحها إذن الوصول إلى من خلال 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 في تم تمرير Intent إلى Context.startActivity(). الإذن محدّد إلى معرّف الموارد المنتظم (URI) في Intent.

إذا فعّلت هذه الميزة، إما من خلال ضبطها على "true" أو من خلال تحديد <grant-uri-permission> العناصر الفرعية، طلب Context.revokeUriPermission() عند حذف معرف موارد منتظم (URI) مشمول من الموفِّر.

يمكنك الاطّلاع أيضًا على <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 من واجهة برمجة التطبيقات
راجِع أيضًا:
موفّرو المحتوى