درباره اعلان‌ها

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

این صفحه نمای کلی از محل نمایش اعلان‌ها و ویژگی‌های دردسترس را ارائه می‌دهد.

راهنماهای پیاده‌سازی

راهنماهای زیر نحوه پیاده‌سازی ویژگی‌های مختلف اعلان را در برنامه‌تان نشان می‌دهد:

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

ظاهر شدن در دستگاه

اعلان‌ها به‌طور خودکار در مکان‌ها و قالب‌های مختلف به کاربران نشان داده می‌شود. اعلان به‌صورت نمادی در نوار وضعیت، ورودی دقیق‌تر در کشوی اعلان، و نشانی روی نماد برنامه نشان داده می‌شود.

رفتار بین‌دستگاهی

اعلان‌ها به‌طور پیش‌فرض در فناوری‌های پوشیدنی جفت‌شده نیز نشان داده می‌شوند. در سناریوهایی که محتوای اعلان فقط به دستگاه منبع مربوط است، از setLocalOnly() استفاده کنید. یک نمونه از آن اعلانی است که تأیید می‌کند بارگیری رسانه تکمیل شده است. برای راهنمایی بیشتر مختص اعلان‌های Wear OS، به راهنمای اعلان‌های Wear OS مراجعه کنید.

نوار وضعیت و کشوی اعلان

وقتی اعلانی صادر می‌کنید، ابتدا به‌صورت نمادی در نوار وضعیت نشان داده می‌شود.

شکل ۱. نمادهای اعلان در سمت راست نوار وضعیت نشان داده می‌شوند.

کاربران می‌توانند با تند کشیدن انگشت روی نوار وضعیت، کشوی اعلان را باز کنند و در آنجا جزئیات بیشتری را مشاهده کنند و با اعلان کنش‌هایی انجام دهند.

شکل ۲. اعلان‌ها در کشوی اعلان.

کاربران می‌توانند اعلان را در کشو به پایین بکشند تا نمای گسترده را ببینند، که محتوای اضافی و دکمه‌های کنش را (درصورت وجود) نشان می‌دهد. از Android 13، این نمای گسترده‌شده شامل دکمه‌ای است که به کاربران اجازه می‌دهد برنامه‌ای را که سرویس‌های پیش‌زمینه‌ای جاری دارد متوقف کنند.

اعلان تا زمانی که توسط برنامه یا کاربر بسته نشود، در کشوی اعلان قابل‌مشاهده باقی می‌ماند.

اعلان هشدار

از Android 5.0 به بعد، اعلان‌ها می‌توانند به‌طور خلاصه در پنجره‌ای شناور به‌نام اعلان هشدار ظاهر شوند. این رفتار معمولاً برای اعلان‌های مهمی است که کاربر باید فوراً از آن‌ها مطلع شود و فقط درصورتی ظاهر می‌شود که قفل دستگاه باز باشد.

شکل ۳. اعلان هشدار در جلوی برنامه پیش‌زمینه ظاهر می‌شود.

وقتی برنامه‌تان اعلان را صادر می‌کند، اعلان هشدار ظاهر می‌شود. این اعلان پس‌از چند لحظه ناپدید می‌شود، اما مثل همیشه در کشوی اعلان‌ها قابل‌مشاهده باقی می‌ماند.

شرایطی که ممکن است اعلان‌های هشدار را فعال کند شامل موارد زیر است:

  • فعالیت کاربر در حالت تمام‌صفحه است، مثلاً وقتی برنامه از fullScreenIntent استفاده می‌کند.

  • اعلان اولویت بالایی دارد و از آهنگ زنگ یا لرزش در دستگاه‌های دارای Android نسخه ۷.۱ (سطح میانای برنامه‌سازی کاربردی ۲۵) و پایین‌تر استفاده می‌کند.

  • کانال اعلان در دستگاه‌هایی که Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) و بالاتر دارند، اهمیت بالایی دارد.

صفحه قفل

از Android 5.0 به بعد، اعلان‌ها می‌توانند در صفحه قفل نشان داده شوند.

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

کاربران می‌توانند از تنظیمات سیستم برای انتخاب سطح جزئیات قابل‌مشاهده در اعلان‌های صفحه قفل یا غیرفعال کردن همه اعلان‌های صفحه قفل استفاده کنند. از Android 8.0 به بعد، کاربران می‌توانند اعلان‌های صفحه قفل را برای هر کانال اعلان فعال یا غیرفعال کنند.

شکل ۴. اعلان‌ها در صفحه قفل با محتوای حساس پنهان شده است.

برای کسب اطلاعات بیشتر، تنظیم نمایان بودن صفحه قفل را ببینید.

نشان نماد برنامه

در راه‌اندازهای پشتیبانی‌شده در دستگاه‌های دارای Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) و بالاتر، نمادهای برنامه اعلان‌های جدید را با نشان رنگی‌ای که نقطه اعلان نامیده می‌شود روی نماد راه‌انداز برنامه مربوطه نشان می‌دهند.

کاربران می‌توانند نماد برنامه را لمس کنند و نگه دارند تا اعلان‌های آن برنامه را ببینند. کاربران می‌توانند اعلان‌ها را از آن منو رد کنند یا روی آن‌ها اقدام کنند، مشابه با کشوی اعلان.

شکل ۵. نشان‌های اعلان و منوِ لمس کردن و نگه داشتن.

برای کسب اطلاعات بیشتر درباره نحوه عملکرد نشان‌ها، اصلاح نشان اعلان را بخوانید.

دستگاه‌های Wear OS

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

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

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

ساختار اعلان

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

شکل ۷. اعلانی با جزئیات پایه.

رایج‌ترین بخش‌های اعلان در شکل ۷ به‌صورت زیر نشان داده شده است:

  1. نماد کوچک: الزامی؛ بااستفاده از setSmallIcon() تنظیم می‌شود.
  2. نام برنامه: توسط سیستم ارائه می‌شود.
  3. مُهر زمان: توسط سیستم ارائه می‌شود، اما می‌توانید آن را بااستفاده از setWhen() لغو کنید یا بااستفاده از setShowWhen(false) پنهان کنید.
  4. نماد بزرگ: اختیاری؛ معمولاً فقط برای عکس‌های مخاطب استفاده می‌شود. از آن برای نماد برنامه‌تان استفاده نکنید. تنظیم‌شده بااستفاده از setLargeIcon().
  5. عنوان: اختیاری؛ تنظیم بااستفاده از setContentTitle().
  6. نوشتار: اختیاری؛ بااستفاده از setContentText() تنظیم می‌شود.

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

برای اطلاعات بیشتر درباره نحوه ایجاد اعلان با این ویژگی‌ها و موارد دیگر، ایجاد اعلان را بخوانید.

عملکردهای اعلان

اگرچه الزامی نیست، اما روش خوبی است که هر اعلان با تک‌ضرب زدن روی آن، فعالیت مناسبی را در برنامه باز کند. علاوه‌بر این کنش اعلان پیش‌فرض، می‌توانید دکمه‌های کنشی اضافه کنید که تکلیف مرتبط با برنامه را از اعلان تکمیل می‌کنند (اغلب بدون باز کردن فعالیت)، همان‌طور که در شکل ۸ نشان داده شده است.

شکل ۸. اعلانی با دکمه‌های کنش.

از Android 7.0 (سطح API‏ ۲۴) به بعد، می‌توانید کنشی برای پاسخ دادن به پیام‌ها یا وارد کردن نوشتار دیگری مستقیماً از اعلان اضافه کنید.

از Android نسخه ۱۰ (سطح API‏ ۲۹)، پلاتفرم می‌تواند به‌طور خودکار دکمه‌های کنش با کنش‌های پیشنهادی مبتنی بر هدف تولید کند.

افزودن دکمه‌های کنش در ایجاد اعلان بیشتر توضیح داده شده است.

نیاز به دستگاه قفل‌گشایی‌شده

کاربران ممکن است کنش‌های اعلان را در صفحه قفل دستگاه ببینند. اگر کنش اعلان باعث شود برنامه‌ای فعالیتی را راه‌اندازی کند یا پاسخ مستقیم ارسال کند، کاربران باید قفل دستگاه را باز کنند تا برنامه بتواند آن کنش اعلان را فراخوانی کند.

در Android نسخه ۱۲ (سطح میانای برنامه‌سازی کاربردی ۳۱) و بالاتر، می‌توانید کنش اعلان را به‌گونه‌ای پیکربندی کنید که برای اینکه برنامه‌تان آن کنش را فراخوانی کند، قفل دستگاه باید باز باشد، صرف‌نظر از اینکه کنش چه گردش کاری را راه‌اندازی می‌کند. این گزینه لایه امنیتی اضافه‌ای به اعلان‌ها در دستگاه‌های قفل‌شده اضافه می‌کند.

برای اینکه دستگاه قبل‌از اینکه برنامه شما کنش اعلان خاصی را فراخوانی کند باز شود، هنگام ایجاد کنش اعلان، true را به setAuthenticationRequired() ارسال کنید، همان‌طور که در تکه‌کد زیر نشان داده شده است:

val intent = Intent(
    context, null
    /** Replace with a valid target activity */
)
val moreSecureNotification = NotificationCompat.Action.Builder(
    0, "Reply",
    PendingIntentCompat.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE, false)
)
    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

اعلان ازهم بازشدنی

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

شکل ۹. اعلان گسترش‌پذیر برای نوشتار بزرگ.

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

به‌روزرسانی‌ها و گروه‌های اعلان

برای جلوگیری از ارسال اعلان‌های متعدد یا تکراری به کاربران هنگام داشتن به‌روزرسانی‌های اضافی، به‌جای صدور اعلان جدید، اعلان موجود را به‌روز کنید یا از اعلان سبک صندوق ورودی برای نمایش به‌روزرسانی‌های مکالمه استفاده کنید.

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

گروه اعلان به شما امکان می‌دهد چندین اعلان را در یک پست در کشوی اعلان با خلاصه جمع کنید. کاربر می‌تواند به‌تدریج گروه اعلان و هر اعلان درون آن را برای جزئیات بیشتر گسترش دهد، همان‌طور که در شکل ۱۰ نشان داده شده است.

شکل ۱۰. گروه اعلان جمع‌شده و ازهم بازشده.

برای آشنایی با نحوه افزودن اعلان‌ها به گروه، ایجاد گروهی از اعلان‌ها را ببینید.

کانال‌های اعلان

از Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶)، همه اعلان‌ها باید به کانالی اختصاص داده شوند، درغیراین‌صورت نمایش داده نمی‌شوند. این کار به کاربران اجازه می‌دهد کانال‌های اعلان خاصی را برای برنامه شما غیرفعال کنند، به‌جای اینکه همه اعلان‌های شما را غیرفعال کنند. کاربران می‌توانند گزینه‌های دیداری و شنیداری هر کانال را از تنظیمات سیستم Android کنترل کنند، همان‌طور که در شکل ۱۱ نشان داده شده است. کاربران همچنین می‌توانند با لمس کردن و نگه داشتن اعلان، رفتار کانال مربوطه را تغییر دهند.

در دستگاه‌هایی که Android نسخه ۷.۱ (سطح میانای برنامه‌سازی کاربردی ۲۵) و پایین‌تر دارند، کاربران می‌توانند اعلان‌ها را فقط براساس هر برنامه مدیریت کنند. هر برنامه در Android نسخه ۷.۱ و پایین‌تر عملاً فقط یک کانال دارد.

شکل ۱۱. تنظیمات اعلان برای برنامه «ساعت» و یکی از کانال‌های آن.

برنامه می‌تواند برای هر نوع اعلانی که صادر می‌کند کانال‌های جداگانه‌ای داشته باشد. برنامه همچنین می‌تواند در پاسخ به انتخاب‌های کاربران، کانال‌های اعلان ایجاد کند. برای مثال، می‌توانید برای هر گروه مکالمه‌ای که کاربر در برنامه پیام‌رسانی ایجاد کرده است، کانال‌های اعلان جداگانه‌ای راه‌اندازی کنید.

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

برای اطلاعات بیشتر، ایجاد و مدیریت کانال‌های اعلان را ببینید.

اهمیت اعلان

Android از اهمیت اعلان برای تعیین میزان وقفه دیداری و شنیداری اعلان برای کاربر استفاده می‌کند. هرچه اهمیت اعلان بیشتر باشد، اعلان مزاحمت بیشتری ایجاد می‌کند.

در Android نسخه ۷.۱ (سطح API‏ ۲۵) و پایین‌تر، اهمیت اعلان با priority اعلان تعیین می‌شود.

در Android 8.0 (سطح میانای برنامه‌سازی کاربردی ۲۶) و بالاتر، اهمیت اعلان براساس importance کانالی که اعلان در آن پست شده است تعیین می‌شود. کاربران می‌توانند اهمیت کانال اعلان را در تنظیمات سیستم تغییر دهند، همان‌طور که در شکل ۱۲ نشان داده شده است.

شکل ۱۲. کاربران می‌توانند اهمیت هر کانال را در Android نسخه ۸.۰ و بالاتر تغییر دهند.

سطوح اهمیت احتمالی و رفتارهای اعلان مرتبط به‌شرح زیر است:

  • فوری: صدا ایجاد می‌کند و به‌عنوان اعلان هشدار نشان داده می‌شود.

  • بالا: صدایی پخش می‌کند.

  • متوسط: صدایی تولید نمی‌کند.

  • پایین: صدایی ایجاد نمی‌کند و در نوار وضعیت نشان داده نمی‌شود.

همه اعلان‌ها، صرف‌نظر از اهمیت، در مکان‌های غیرمزاحم واسط کاربر سیستم، مثل کشوی اعلان‌ها و به‌عنوان نشان روی نماد راه‌انداز، ظاهر می‌شوند. اما می‌توانید ظاهر نشان اعلان را تغییر دهید.

برای اطلاعات بیشتر، درباره نحوه تنظیم اهمیت بخوانید.

حالت «مزاحم نشوید»

از Android 5.0 (سطح API‏ ۲۱)، کاربران می‌توانند حالت «مزاحم نشوید» را فعال کنند، که صدا و لرزش را برای همه اعلان‌ها بی‌صدا می‌کند. اعلان‌ها همچنان به‌صورت عادی در واسط کاربر سیستم ظاهر می‌شوند، مگراینکه کاربر به‌گونه دیگری مشخص کند.

سه سطح در حالت «مزاحم نشوید» دردسترس است:

  • سکوت کامل: همه صداها و لرزش‌ها را مسدود می‌کند، ازجمله زنگ‌های ساعت، موسیقی، ویدیوها، و بازی‌ها.
  • فقط زنگ هشدار: همه صداها و لرزش‌ها را به‌جز زنگ هشدار مسدود می‌کند.
  • فقط اولویت: کاربران می‌توانند پیکربندی کنند که کدام دسته‌های سراسری سیستم می‌توانند در کارشان وقفه ایجاد کنند، مثلاً فقط هشدارها، یادآوری‌ها، رویدادها، تماس‌ها، یا پیام‌ها. برای پیام‌ها و تماس‌ها، کاربران می‌توانند براساس فرستنده یا تماس‌گیرنده فیلتر کنند، همان‌طور که در شکل ۱۳ نشان داده شده است.
شکل ۱۳. کاربران می‌توانند براساس دسته‌های سراسری سیستم (سمت راست) و فرستنده یا تماس‌گیرنده (سمت چپ) اجازه دهند اعلان‌ها نمایش داده شوند.

در Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) و بالاتر، کاربران می‌توانند با لغو «مزاحم نشوید» به‌صورت کانال‌به‌کانال، به اعلان‌های دسته‌های خاص برنامه (که کانال نیز نامیده می‌شوند) اجازه عبور دهند. برای مثال، یک برنامه پرداخت ممکن است کانال‌هایی برای اعلان‌های مربوط به برداشت و واریز داشته باشد. کاربر می‌تواند در حالت اولویت، اعلان‌های برداشت، اعلان‌های واریز، یا هر دو را مجاز کند.

در دستگاه‌هایی که Android نسخه ۷.۱ (سطح میانای برنامه‌سازی کاربردی ۲۵) و پایین‌تر را اجرا می‌کنند، کاربران می‌توانند اعلان‌ها را به‌جای کانال‌به‌کانال، به‌صورت برنامه‌به‌برنامه مجاز کنند.

برای پیکربندی اعلان‌هایتان برای این تنظیمات کاربر، باید دسته‌ای در سطح سیستم تنظیم کنید.

اعلان‌های سرویس‌های پیش‌زمینه‌ای

وقتی برنامه‌تان درحال اجرای سرویس پیش‌زمینه‌ای است، اعلان لازم است—Service در پس‌زمینه اجرا می‌شود که طولانی‌مدت است و برای کاربر قابل‌توجه است، مثل پخش‌کننده رسانه. این اعلان را نمی‌توان مثل اعلان‌های دیگر بست. برای برداشتن اعلان، سرویس باید متوقف شود یا از حالت پیش‌زمینه برداشته شود.

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

رفتارهای اعلان

Android 16.0، سطح میانای برنامه‌سازی کاربردی ۳۶

اکنون اعلان‌ها ازطرف برنامه به‌طور خودکار گروه‌بندی می‌شوند.

اعلان‌های زیر به‌طور خودکار گروه‌بندی می‌شوند:

  • اعلان‌های بدون خلاصه
  • اعلان‌ها بدون اعلان‌های فرزند
  • اعلان‌هایی با یک یا تعداد کمی اعلان فرزند

Android 15.0، سطح میانای برنامه‌سازی کاربردی ۳۵

استراحت

Android 15 ویژگی «آرام‌سازی اعلان‌ها» را معرفی می‌کند که هدف آن بهبود تجربه اعلان‌هایی است که به‌سرعت پشت‌سرهم می‌رسند. این ویژگی ظاهر، میزان صدا، و شدت لرزش را برای اعلان‌های تکراری تا دو دقیقه کاهش می‌دهد.

اعلان‌های مهمی که برای جلب توجه به صدا و لرزش نیاز دارند مشمول زمان استراحت نمی‌شوند. کاربر می‌تواند استراحت اعلان‌ها را در «تنظیمات» خاموش کند.

شکل ۱۴. تنظیمات استراحت اعلان‌ها.