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

شکل ۱. نمادهای اعلان در سمت چپ نوار وضعیت ظاهر میشوند.
کاربران میتوانند با کشیدن انگشت خود به پایین در نوار وضعیت، کشوی اعلانها را باز کنند، جایی که میتوانند جزئیات بیشتری را مشاهده کرده و با اعلانها اقداماتی انجام دهند.

شکل ۲. اعلانها در کشوی اعلانها.
کاربران میتوانند روی یک اعلان در کشو به پایین بکشند تا نمای گستردهتر نمایان شود که در صورت وجود، محتوا و دکمههای عملیاتی اضافی را نشان میدهد. از اندروید ۱۳ به بعد، این نمای گستردهتر شامل دکمهای است که به کاربران امکان میدهد برنامهای را که سرویسهای پیشزمینه در حال اجرا دارد، متوقف کنند .
یک اعلان تا زمانی که توسط برنامه یا کاربر رد نشود، در کشوی اعلانها قابل مشاهده باقی میماند.
اعلان هشدار
از اندروید ۵.۰ به بعد، اعلانها میتوانند به طور خلاصه در یک پنجره شناور به نام اعلانهای هشدار ظاهر شوند. این رفتار معمولاً برای اعلانهای مهمی است که کاربر باید فوراً از آنها مطلع شود و فقط در صورت باز شدن قفل دستگاه ظاهر میشود.

شکل ۳. یک اعلان هشدار در مقابل برنامه پیشزمینه ظاهر میشود.
اعلان هشدار زمانی ظاهر میشود که برنامه شما اعلانی را ارسال کند. این اعلان پس از لحظهای ناپدید میشود، اما طبق معمول در کشوی اعلانها قابل مشاهده است.
شرایطی که ممکن است باعث دریافت اعلانهای هشدار شونده شوند عبارتند از:
فعالیت کاربر در حالت تمام صفحه است، مانند زمانی که برنامه از
fullScreenIntentاستفاده میکند.این اعلان اولویت بالایی دارد و در دستگاههایی که اندروید ۷.۱ (سطح API ۲۵) و پایینتر دارند، از زنگ یا ویبره استفاده میکند.
کانال اعلانها در دستگاههایی که اندروید ۸.۰ (سطح API ۲۶) و بالاتر را اجرا میکنند، از اهمیت بالایی برخوردار است.
قفل صفحه
از اندروید ۵.۰ به بعد، اعلانها میتوانند روی صفحه قفل ظاهر شوند.
شما میتوانید به صورت برنامهنویسی شده تنظیم کنید که آیا اعلانهای ارسال شده توسط برنامه شما روی صفحه قفل امن نمایش داده شوند یا خیر، و در صورت نمایش، سطح جزئیات قابل مشاهده چقدر باشد.
کاربران میتوانند از تنظیمات سیستم برای انتخاب سطح جزئیات قابل مشاهده در اعلانهای صفحه قفل یا غیرفعال کردن همه اعلانهای صفحه قفل استفاده کنند. از اندروید ۸.۰ به بعد، کاربران میتوانند اعلانهای صفحه قفل را برای هر کانال اعلان غیرفعال یا فعال کنند.

شکل ۴. اعلانها روی صفحه قفل با محتوای حساس پنهان.
برای کسب اطلاعات بیشتر، به تنظیم قابلیت مشاهده صفحه قفل مراجعه کنید.
نشان آیکون برنامه
در لانچرهای پشتیبانیشده در دستگاههایی که اندروید ۸.۰ (سطح API ۲۶) و بالاتر را اجرا میکنند، آیکونهای برنامهها اعلانهای جدید را با یک نشان رنگی که به عنوان نقطه اعلان شناخته میشود، روی آیکون لانچر برنامه مربوطه نشان میدهند.
کاربران میتوانند آیکون یک برنامه را لمس کرده و نگه دارند تا اعلانهای آن برنامه را مشاهده کنند. کاربران میتوانند از همان منو، مشابه منوی اعلانها، اعلانها را رد کنند یا روی آنها کاری انجام دهند.

شکل ۵. نشانهای اعلان و منوی لمس و نگهداشتن.
برای کسب اطلاعات بیشتر در مورد نحوه عملکرد نشانها، بخش «اصلاح نشان اعلان» را مطالعه کنید.
دستگاههای دارای سیستم عامل Wear OS
اگر کاربر یک دستگاه Wear OS جفت شده داشته باشد، تمام اعلانهای شما، از جمله جزئیات قابل ارتقا و دکمههای عملیاتی، به طور خودکار در آنجا نمایش داده میشوند.
شما میتوانید با سفارشیسازی ظاهر اعلانهای خود در دستگاههای پوشیدنی و با ارائه اقدامات مختلف، از جمله پاسخهای پیشنهادی و پاسخهای ورودی صوتی، تجربه کاربری را بهبود بخشید. برای اطلاعات بیشتر، به نحوه افزودن ویژگیهای خاص دستگاههای پوشیدنی به اعلان خود مراجعه کنید.

شکل ۶. اعلانها بهطور خودکار روی دستگاه جفتشده با Wear OS ظاهر میشوند.
آناتومی اعلان
طراحی یک اعلان توسط قالبهای سیستم تعیین میشود و برنامه شما محتوای هر بخش از قالب را تعریف میکند. برخی از جزئیات اعلان فقط در نمای گسترده ظاهر میشوند.

شکل ۷. یک اعلان با جزئیات اولیه.
رایجترین بخشهای یک اعلان در شکل 7 به شرح زیر نشان داده شده است:
- آیکون کوچک: الزامی؛ با استفاده از
setSmallIcon()تنظیم میشود. - نام برنامه: ارائه شده توسط سیستم.
- مهر زمان: توسط سیستم ارائه میشود، اما میتوانید با استفاده از
setWhen()آن را لغو کنید یا با استفاده ازsetShowWhen(false)آن را پنهان کنید. - آیکون بزرگ: اختیاری؛ معمولاً فقط برای عکسهای مخاطبین استفاده میشود. از آن برای آیکون برنامه خود استفاده نکنید. با استفاده از
setLargeIcon()تنظیم کنید. - عنوان: اختیاری؛ با استفاده از
setContentTitle()تنظیم میشود. - متن: اختیاری؛ با استفاده از
setContentText()تنظیم میشود.
ما اکیداً توصیه میکنیم برای سازگاری مناسب طراحی در همه دستگاهها، از قالبهای سیستمی استفاده کنید. در صورت لزوم، میتوانید یک طرح اعلان سفارشی ایجاد کنید .
برای اطلاعات بیشتر در مورد نحوه ایجاد اعلان با این ویژگیها و موارد دیگر، ایجاد اعلان را مطالعه کنید.
اقدامات اعلان
اگرچه الزامی نیست، اما بهتر است هر اعلانی با لمس کردن، یک فعالیت برنامهی مناسب را باز کند. علاوه بر این اقدام اعلان پیشفرض، میتوانید دکمههای عملیاتی اضافه کنید که یک کار مرتبط با برنامه را از اعلان - اغلب بدون باز کردن یک فعالیت - همانطور که در شکل ۸ نشان داده شده است، انجام دهند.

شکل ۸. یک اعلان با دکمههای عملیاتی.
از اندروید ۷.۰ (سطح API ۲۴)، میتوانید یک اکشن برای پاسخ دادن به پیامها یا وارد کردن متن دیگر مستقیماً از اعلان اضافه کنید.
با شروع از اندروید ۱۰ (سطح API ۲۹)، این پلتفرم میتواند بهطور خودکار دکمههای عملیاتی را با اقدامات پیشنهادی مبتنی بر قصد (intent-based actions) تولید کند.
افزودن دکمههای عملیاتی در بخش «ایجاد اعلان» بیشتر توضیح داده شده است.
نیاز به یک دستگاه قفل نشده
کاربران ممکن است اعلانها را روی صفحه قفل دستگاه مشاهده کنند. اگر یک اعلان باعث شود برنامهای فعالیتی را اجرا کند یا پاسخ مستقیمی ارسال کند، کاربران باید قبل از اینکه برنامه بتواند آن اعلان را فراخوانی کند، قفل دستگاه را باز کنند.
در اندروید ۱۲ (سطح API 31) و بالاتر، میتوانید یک اکشن اعلان را طوری پیکربندی کنید که برای فراخوانی آن اکشن توسط برنامه، قفل دستگاه باز باشد، صرف نظر از اینکه اکشن چه گردش کاری را اجرا میکند. این گزینه یک لایه امنیتی اضافی به اعلانها در دستگاههای قفل شده اضافه میکند.
برای اینکه قبل از فراخوانی یک اکشن اعلان، قفل دستگاه باز شود، هنگام ایجاد اکشن اعلان، true به setAuthenticationRequired() ارسال کنید، همانطور که در قطعه کد زیر نشان داده شده است:
کاتلین
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
جاوا
Notification moreSecureNotification = new Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build();
اعلان قابل ارتقا
به طور پیشفرض، محتوای متنی اعلان کوتاه میشود تا در یک خط جا شود. اگر میخواهید اعلان شما طولانیتر باشد، میتوانید با اعمال یک الگوی اضافی، همانطور که در شکل ۹ نشان داده شده است، یک ناحیه متنی بزرگتر که قابل گسترش است را فعال کنید.

شکل ۹. یک اعلان قابل گسترش برای متن بزرگ.
همچنین میتوانید یک اعلان قابل بسط با تصویر، به سبک صندوق ورودی، با یک مکالمه چت یا با کنترلهای پخش رسانه ایجاد کنید. برای اطلاعات بیشتر، ایجاد یک اعلان قابل بسط را مطالعه کنید.
بهروزرسانیهای اعلانها و گروهها
برای جلوگیری از هجوم اعلانهای متعدد یا تکراری به کاربرانتان در هنگام بهروزرسانیهای اضافی، به جای ارسال اعلان جدید ، یک اعلان موجود را بهروزرسانی کنید یا از اعلان به سبک صندوق ورودی برای نمایش بهروزرسانیهای مکالمه استفاده کنید.
با این حال، اگر لازم است چندین اعلان ارسال شود، میتوانید اعلانهای جداگانه را در یک گروه گروهبندی کنید، که در اندروید ۷.۰ و بالاتر موجود است.
یک گروه اعلان به شما امکان میدهد چندین اعلان را در یک پست در کشوی اعلانها به همراه خلاصهای از آنها قرار دهید. کاربر میتواند به تدریج گروه اعلانها و هر اعلان درون آن را برای جزئیات بیشتر، همانطور که در شکل 10 نشان داده شده است، گسترش دهد.

شکل ۱۰. یک گروه اعلانِ باز و بسته شده.
برای یادگیری نحوه افزودن اعلانها به یک گروه، به ایجاد گروهی از اعلانها مراجعه کنید.
کانالهای اعلان
از اندروید ۸.۰ (سطح API ۲۶)، همه اعلانها باید به یک کانال اختصاص داده شوند، در غیر این صورت نمایش داده نمیشوند. این به کاربران اجازه میدهد به جای غیرفعال کردن همه اعلانهای شما، کانالهای اعلان خاصی را برای برنامه شما غیرفعال کنند. کاربران میتوانند گزینههای بصری و صوتی هر کانال را از تنظیمات سیستم اندروید، همانطور که در شکل ۱۱ نشان داده شده است، کنترل کنند. کاربران همچنین میتوانند یک اعلان را لمس کرده و نگه دارند تا رفتارهای کانال مرتبط را تغییر دهند.
در دستگاههایی که اندروید ۷.۱ (سطح API ۲۵) و پایینتر را اجرا میکنند، کاربران میتوانند اعلانها را فقط بر اساس هر برنامه مدیریت کنند. هر برنامه در اندروید ۷.۱ و پایینتر عملاً فقط یک کانال دارد.

شکل ۱۱. تنظیمات اعلان برای برنامه ساعت و یکی از کانالهای آن.
یک برنامه میتواند برای هر نوع اعلانی که منتشر میکند، کانالهای جداگانهای داشته باشد. همچنین میتواند در پاسخ به انتخابهای کاربران، کانالهای اعلان ایجاد کند. به عنوان مثال، میتوانید برای هر گروه مکالمه ایجاد شده توسط کاربر در یک برنامه پیامرسان، کانالهای اعلان جداگانهای تنظیم کنید.
The channel is also where you specify the importance level for your notifications on Android 8.0 and higher, so all notifications posted to the same notification channel have the same behavior. This is described in the following section.
برای اطلاعات بیشتر، به ایجاد و مدیریت کانالهای اعلان مراجعه کنید.
اهمیت اعلان
اندروید از اهمیت یک اعلان برای تعیین میزان مزاحمت بصری و صوتی کاربر توسط آن استفاده میکند. هرچه اهمیت یک اعلان بیشتر باشد، مزاحمت آن بیشتر است.
در اندروید ۷.۱ (سطح API ۲۵) و پایینتر، اهمیت یک اعلان توسط priority اعلان تعیین میشود.
در اندروید ۸.۰ (سطح API ۲۶) و بالاتر، اهمیت یک اعلان با توجه به importance کانالی که اعلان در آن ارسال میشود، تعیین میشود. کاربران میتوانند اهمیت یک کانال اعلان را در تنظیمات سیستم، همانطور که در شکل ۱۲ نشان داده شده است، تغییر دهند.

شکل ۱۲. کاربران میتوانند اهمیت هر کانال را در اندروید ۸.۰ و بالاتر تغییر دهند.
سطوح اهمیت احتمالی و رفتارهای اعلان مرتبط به شرح زیر است:
فوری: صدایی ایجاد میکند و به عنوان یک اعلان هشدار ظاهر میشود.
زیاد: صدا میدهد.
متوسط: هیچ صدایی ایجاد نمیکند.
کم: صدایی ایجاد نمیکند و در نوار وضعیت ظاهر نمیشود.
همه اعلانها، صرف نظر از اهمیتشان، در مکانهای رابط کاربری سیستم که مزاحمتی ایجاد نمیکنند، مانند کشوی اعلانها و به عنوان یک نشان روی آیکون لانچر، ظاهر میشوند. با این حال، میتوانید ظاهر نشان اعلان را تغییر دهید .
برای اطلاعات بیشتر، نحوه تنظیم اهمیت را مطالعه کنید.
حالت «مزاحم نشوید»
از اندروید ۵.۰ (سطح API ۲۱)، کاربران میتوانند حالت «مزاحم نشوید» را فعال کنند که صدا و لرزش همه اعلانها را قطع میکند. اعلانها همچنان به صورت عادی در رابط کاربری سیستم ظاهر میشوند، مگر اینکه کاربر طور دیگری تنظیم کند.
سه سطح در حالت «مزاحم نشوید» وجود دارد:
- سکوت کامل: تمام صداها و لرزشها، از جمله صدای آلارمها، موسیقی، ویدیوها و بازیها را مسدود میکند.
- فقط هشدارها: همه صداها و لرزشها را مسدود میکند، به جز صدای هشدارها.
- فقط اولویت: کاربران میتوانند پیکربندی کنند که کدام دستههای سیستم میتوانند آنها را متوقف کنند، مانند فقط هشدارها، یادآوریها، رویدادها، تماسها یا پیامها. برای پیامها و تماسها، کاربران میتوانند بر اساس فرستنده یا تماسگیرنده فیلتر کنند، همانطور که در شکل ۱۳ نشان داده شده است.

شکل ۱۳. کاربران میتوانند بر اساس دستهبندیهای سراسری سیستم (چپ) و فرستنده یا تماسگیرنده (راست) اجازه ارسال اعلانها را بدهند.
در اندروید ۸.۰ (سطح API ۲۶) و بالاتر، کاربران میتوانند با لغو گزینه «مزاحم نشوید» به صورت کانال به کانال، اعلانها را برای دستههای خاص برنامه - که به عنوان کانال نیز شناخته میشوند - نیز مجاز کنند. به عنوان مثال، یک برنامه پرداخت ممکن است کانالهایی برای اعلانهای مربوط به برداشت و واریز داشته باشد. کاربر میتواند در حالت اولویت، اعلانهای برداشت، اعلانهای واریز یا هر دو را مجاز کند.
در دستگاههایی که اندروید ۷.۱ (سطح API ۲۵) و پایینتر را اجرا میکنند، کاربران میتوانند به جای کانال به کانال، اعلانها را به صورت تک تک برنامهها ارسال کنند.
برای پیکربندی اعلانهای خود برای این تنظیمات کاربر، باید یک دستهبندی در سطح سیستم تنظیم کنید .
اعلانها برای سرویسهای پیشزمینه
وقتی برنامه شما یک سرویس پیشزمینه را اجرا میکند، یک اعلان لازم است - Service که در پسزمینه اجرا میشود و برای کاربر قابل توجه است، مانند پخشکننده رسانه. این اعلان را نمیتوان مانند سایر اعلانها رد کرد. برای حذف اعلان، سرویس باید متوقف شود یا از حالت پیشزمینه حذف شود.
برای اطلاعات بیشتر، خدمات پیشزمینه را مطالعه کنید. اگر در حال ساخت یک پخشکننده رسانه هستید، پخش رسانه در پسزمینه را نیز مطالعه کنید.
رفتارهای اعلان
اندروید ۱۶.۰، API سطح ۳۶
اعلانها اکنون به صورت خودکار از طرف برنامه گروهبندی میشوند.
اعلانهای زیر به صورت خودکار گروهبندی میشوند:
- اعلانهای بدون خلاصه
- اعلانها بدون اعلانهای فرزند
- اعلانهایی با یک یا تعداد کمی اعلان فرزند
اندروید ۱۵.۰، API سطح ۳۵
خنکسازی
اندروید ۱۵ یک ویژگی خنکسازی اعلانها (notification cooldown) معرفی میکند که هدف آن بهبود تجربه دریافت اعلانهایی است که پشت سر هم میآیند. این ویژگی ظاهر، میزان صدا و شدت لرزش را برای اعلانهای تکراری تا دو دقیقه کاهش میدهد.
اعلانهای حیاتی که برای جلب توجه به صدا و لمس نیاز دارند، مشمول کاهش زمان فعالسازی نمیشوند. کاربر میتواند کاهش زمان فعالسازی اعلانها را در تنظیمات غیرفعال کند.

شکل ۹. تنظیمات زمان انتظار اعلانها.
در زیر مثالی از نحوهی یافتن تنظیمات زمان انتظار اعلانها آمده است:
کاتلین
val intent = Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)
جاوا
Intent intent = new Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)