- نحو:
<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 سطح ۱
<گیرنده>
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2026-07-02 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2026-07-02 بهوقت ساعت هماهنگ جهانی."],[],[]]