<گیرنده>

نحو:
<receiver android:directBootAware=["true" | "false"]
          android:enabled=["true" | "false"]
          android:exported=["true" | "false"]
          android:icon="drawable resource"
          android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"]
          android:label="string resource"
          android:name="string"
          android:permission="string"
          android:process="string" >
    ...
</receiver>
مندرج در:
<application>
می‌تواند شامل موارد زیر باشد:
<intent-filter>
<meta-data>
<property>
شرح:
یک گیرنده پخش، یک زیرکلاس BroadcastReceiver ، را به عنوان یکی از اجزای برنامه اعلام می‌کند. گیرنده‌های پخش، برنامه‌ها را قادر می‌سازند تا intentهایی را که توسط سیستم یا سایر برنامه‌ها پخش می‌شوند، حتی زمانی که سایر اجزای برنامه در حال اجرا نیستند، دریافت کنند.

دو راه برای شناساندن یک گیرنده‌ی اعلان به سیستم وجود دارد. یکی این است که آن را در فایل مانیفست با این عنصر اعلام کنید. راه دیگر این است که گیرنده را به صورت پویا در کد ایجاد کنید و آن را با متد Context.registerReceiver() یا یکی از نسخه‌های بارگذاری شده‌ی آن ثبت کنید.

برای اطلاعات بیشتر در مورد نحوه ایجاد پویای گیرنده‌ها، به توضیحات کلاس BroadcastReceiver مراجعه کنید.

اگر این گیرنده، پخش‌های غیرسیستمی را مدیریت می‌کند، مقداری برای android:exported تعیین کنید. اگر می‌خواهید گیرنده شما بتواند پخش‌های برنامه‌های دیگر را دریافت کند، این مقدار را روی "true" و اگر فقط می‌خواهید گیرنده شما بتواند پخش‌های برنامه خودتان را دریافت کند، روی "false" تنظیم کنید.

اگر قبلاً ویژگی android:permission را تعریف کرده‌اید، لازم نیست آن را حذف کنید.

هشدار: تعداد گیرنده‌های پخش را در برنامه خود محدود کنید. داشتن گیرنده‌های پخش بیش از حد می‌تواند بر عملکرد برنامه شما و عمر باتری دستگاه‌های کاربران تأثیر بگذارد. برای اطلاعات بیشتر در مورد APIهایی که می‌توانید به جای کلاس BroadcastReceiver برای زمان‌بندی کار پس‌زمینه استفاده کنید، به بهینه‌سازی پس‌زمینه مراجعه کنید.

ویژگی‌ها:
android:directBootAware

اینکه آیا گیرنده پخش از Direct-Boot آگاه است یا خیر، یعنی اینکه آیا می‌تواند قبل از اینکه کاربر قفل دستگاه را باز کند، اجرا شود.

نکته: در طول بوت مستقیم ، یک گیرنده پخش در برنامه شما فقط می‌تواند به داده‌هایی که در حافظه محافظت‌شده دستگاه ذخیره شده‌اند، دسترسی داشته باشد.

مقدار پیش‌فرض "false" است.

android:enabled
اینکه آیا گیرنده پخش می‌تواند توسط سیستم نمونه‌سازی شود یا خیر. اگر بتواند "true" و در غیر این صورت "false" است. مقدار پیش‌فرض "true" است.

عنصر <application> ویژگی enabled به خود را دارد که برای همه اجزای برنامه، از جمله گیرنده‌های پخش، اعمال می‌شود. ویژگی‌های <application> و <receiver> باید هر دو "true" باشند تا گیرنده پخش فعال شود. اگر هر کدام "false" باشد، غیرفعال است و نمی‌توان از آن نمونه‌سازی کرد.

android:exported
اینکه آیا گیرنده پخش می‌تواند پیام‌هایی را از منابع غیرسیستمی خارج از برنامه خود دریافت کند یا خیر. اگر بتواند "true" و در غیر این صورت "false" است. اگر "false" ، تنها پیام‌هایی که گیرنده پخش دریافت می‌کند، پیام‌هایی هستند که توسط سیستم، اجزای همان برنامه یا برنامه‌هایی با شناسه کاربری یکسان ارسال می‌شوند.

اگر مشخص نشود، مقدار پیش‌فرض به این بستگی دارد که آیا گیرنده‌ی پخش شامل فیلترهای intent است یا خیر. اگر گیرنده حداقل یک فیلتر intent داشته باشد، مقدار پیش‌فرض "true" است. در غیر این صورت، مقدار پیش‌فرض "false" است.

این ویژگی تنها راه برای محدود کردن دسترسی خارجی یک گیرنده‌ی پخش نیست. همچنین می‌توانید از یک مجوز برای محدود کردن موجودیت‌های خارجی که می‌توانند به آن پیام ارسال کنند استفاده کنید. به ویژگی permission مراجعه کنید.

android:icon
آیکونی که نشان‌دهنده‌ی گیرنده‌ی پخش است. این ویژگی به عنوان مرجعی برای یک منبع قابل ترسیم که شامل تعریف تصویر است، تنظیم می‌شود. اگر تنظیم نشود، آیکون مشخص شده برای کل برنامه به جای آن استفاده می‌شود. به ویژگی icon عنصر <application> مراجعه کنید.

آیکون گیرنده‌ی اعلان، چه اینجا تنظیم شده باشد و چه توسط عنصر <application> ، آیکون پیش‌فرض برای تمام فیلترهای اینتنت گیرنده نیز هست. به ویژگی icon عنصر <intent-filter> مراجعه کنید.

android:intentMatchingFlags

از این ویژگی برای تنظیم دقیق نحوه تطبیق اهداف ورودی سیستم با اجزای برنامه استفاده کنید. به طور پیش‌فرض، هیچ قانون تطبیق خاصی اعمال نمی‌شود.

مقدار تنظیم شده روی برچسب <receiver> مقدار تنظیم شده روی برچسب <application> را لغو می‌کند.

مقدار باید یک یا چند مورد از پرچم‌های زیر باشد که با ' | ' از هم جدا شده‌اند:

پرچم توضیحات
none تمام قوانین تطبیق ویژه را برای ورودی‌های ورودی غیرفعال می‌کند. هنگام تعیین چندین پرچم، مقادیر متناقض با دادن اولویت به پرچم none حل می‌شوند.
enforceIntentFilter

تطبیق سختگیرانه‌تری را برای اهداف ورودی اعمال می‌کند:

  • اهداف صریح باید با فیلتر هدف کامپوننت هدف مطابقت داشته باشند.
  • اینتنت‌های بدون اکشن با هیچ فیلتر اینتنتی مطابقت ندارند.
allowNullAction

قوانین تطبیق را آسان می‌کند تا به intent های بدون اکشن اجازه تطبیق داده شود. این پرچم همراه با enforceIntentFilter برای دستیابی به رفتار زیر استفاده می‌شود:

  • اهداف صریح باید با فیلتر هدف کامپوننت هدف مطابقت داشته باشند.
  • اینتنت‌های بدون اکشن مجاز به مطابقت با هر فیلتر اینتنتی هستند.

برای اطلاعات بیشتر، به بخش « اهداف امن‌تر» در تغییرات رفتاری اندروید ۱۶ (سطح API ۳۶) مراجعه کنید.

android:label
یک برچسب قابل خواندن توسط کاربر برای گیرنده پخش. اگر این ویژگی تنظیم نشده باشد، برچسب تنظیم شده برای کل برنامه به جای آن استفاده می‌شود. به ویژگی label عنصر <application> مراجعه کنید.

برچسب گیرنده‌ی پخش، چه اینجا تنظیم شده باشد و چه توسط عنصر <application> ، برچسب پیش‌فرض برای تمام فیلترهای اینتنت گیرنده نیز هست. به ویژگی label عنصر <intent-filter> مراجعه کنید.

این برچسب به عنوان مرجعی برای یک منبع رشته‌ای تنظیم شده است، به طوری که می‌تواند مانند سایر رشته‌ها در رابط کاربری بومی‌سازی شود. با این حال، برای راحتی شما در حین توسعه برنامه، می‌توانید آن را به عنوان یک رشته خام نیز تنظیم کنید.

android:name
نام کلاسی که گیرنده پخش (broadcast receiver) را پیاده‌سازی می‌کند، یک زیرکلاس از BroadcastReceiver . این یک نام کلاس کاملاً واجد شرایط است، مانند "com.example.project.ReportReceiver" . با این حال، به عنوان یک اختصار، اگر اولین کاراکتر نام یک نقطه باشد، به عنوان مثال ".ReportReceiver" ، به نام بسته مشخص شده در عنصر <manifest> اضافه می‌شود.

پس از انتشار برنامه، این نام را تغییر ندهید ، مگر اینکه android:exported ="false" را تنظیم کرده باشید.

هیچ پیش‌فرضی وجود ندارد. نام باید مشخص شود.

android:permission
نام مجوزی که پخش‌کنندگان برای ارسال پیام به گیرنده پخش به آن نیاز دارند. اگر این ویژگی تنظیم نشده باشد، مجوز تنظیم شده توسط ویژگی permission عنصر <application> برای گیرنده پخش اعمال می‌شود. اگر هیچ یک از ویژگی‌ها تنظیم نشده باشند، گیرنده توسط مجوز محافظت نمی‌شود.

برای اطلاعات بیشتر در مورد مجوزها، به بخش مجوزها در نمای کلی مانیفست برنامه و نکات امنیتی مراجعه کنید.

android:process

نام فرآیندی که گیرنده پخش در آن اجرا می‌شود. معمولاً تمام اجزای یک برنامه در فرآیند پیش‌فرض ایجاد شده برای برنامه اجرا می‌شوند. این فرآیند همان نام بسته برنامه را دارد.

ویژگی process عنصر <application> می‌تواند پیش‌فرض متفاوتی را برای همه کامپوننت‌ها تنظیم کند. اما هر کامپوننت می‌تواند پیش‌فرض را با ویژگی process خود لغو کند و به شما امکان دهد برنامه خود را در چندین فرآیند پخش کنید.

اگر نام اختصاص داده شده به این ویژگی با یک دونقطه ( : شروع شود، یک فرآیند جدید، خصوصی برای برنامه، در صورت نیاز ایجاد می‌شود و گیرنده پخش در آن فرآیند اجرا می‌شود.

اگر نام فرآیند با یک کاراکتر کوچک شروع شود، گیرنده در یک فرآیند سراسری با آن نام اجرا می‌شود، مشروط بر اینکه مجوز انجام این کار را داشته باشد. این امر به اجزای برنامه‌های مختلف اجازه می‌دهد تا یک فرآیند را به اشتراک بگذارند و استفاده از منابع را کاهش دهند.

معرفی شده در:
API سطح ۱