اعلان پیامی است که Android در خارج از رابط کاربری برنامه شما نمایش می دهد تا یادآوری ها، ارتباط افراد دیگر یا سایر اطلاعات به موقع از برنامه شما را به کاربر ارائه دهد. کاربران می توانند روی اعلان ضربه بزنند تا برنامه شما باز شود یا مستقیماً از اعلان اقدامی انجام دهند.
این صفحه نمای کلی از مکان نمایش اعلان ها و ویژگی های موجود را ارائه می دهد. برای شروع اعلانهای ساخت، ایجاد اعلان را بخوانید.
برای اطلاعات بیشتر در مورد طراحی اعلان ها و الگوهای تعامل، به راهنمای طراحی اعلان ها مراجعه کنید.
ظاهر روی یک دستگاه
اعلان ها به طور خودکار در مکان ها و فرمت های مختلف برای کاربران ظاهر می شوند. یک اعلان به عنوان یک نماد در نوار وضعیت، یک ورودی با جزئیات بیشتر در کشوی اعلان و یک نشان روی نماد برنامه ظاهر می شود. اعلانها در پوشیدنیهای جفت شده نیز ظاهر میشوند.
نوار وضعیت و کشوی اعلان
هنگامی که یک اعلان صادر می کنید، ابتدا به عنوان یک نماد در نوار وضعیت ظاهر می شود.
شکل 1. نمادهای اعلان در سمت چپ نوار وضعیت ظاهر می شوند.
کاربران میتوانند نوار وضعیت را به پایین بکشند تا کشوی اعلان را باز کنند، جایی که میتوانند جزئیات بیشتری را مشاهده کنند و اقداماتی را با اعلان انجام دهند.
شکل 2. اعلان ها در کشوی اعلان.
کاربران میتوانند یک اعلان را در کشو به پایین بکشند تا نمای گسترشیافته نمایش داده شود، که در صورت ارائه، محتوای اضافی و دکمههای عمل را نشان میدهد. با شروع در Android 13، این نمای گسترشیافته شامل دکمهای است که به کاربران امکان میدهد برنامهای را که دارای خدمات پیشزمینه در حال انجام است متوقف کنند .
یک اعلان تا زمانی که توسط برنامه یا کاربر رد نشود در کشوی اعلان قابل مشاهده است.
اطلاعیه سرآغاز
با شروع Android 5.0، اعلانها میتوانند برای مدت کوتاهی در یک پنجره شناور به نام اعلان heads-up ظاهر شوند. این رفتار معمولاً برای اعلانهای مهمی است که کاربر باید فوراً درباره آنها بداند و تنها در صورتی ظاهر میشود که قفل دستگاه باز باشد.
شکل 3. یک اعلان heads-up در جلوی برنامه پیش زمینه ظاهر می شود.
هنگامی که برنامه شما اعلان را صادر می کند، اعلان heads up ظاهر می شود. پس از یک لحظه ناپدید می شود، اما طبق معمول در کشوی اعلان قابل مشاهده است.
شرایطی که ممکن است باعث ایجاد اعلانهای هدآپ شود شامل موارد زیر است:
فعالیت کاربر در حالت تمام صفحه است، مانند زمانی که برنامه از
fullScreenIntent
استفاده می کند.این اعلان دارای اولویت بالایی است و از آهنگ های زنگ یا لرزش در دستگاه های دارای اندروید 7.1 (سطح API 25) و پایین تر استفاده می کند.
کانال اعلان در دستگاه های دارای اندروید 8.0 (سطح API 26) و بالاتر از اهمیت بالایی برخوردار است.
صفحه قفل
با شروع اندروید 5.0، اعلان ها می توانند روی صفحه قفل ظاهر شوند.
میتوانید بهصورت برنامهنویسی تنظیم کنید که آیا اعلانهای ارسالشده توسط برنامهتان در یک صفحه قفل ایمن نمایش داده میشوند یا خیر و در این صورت، سطح جزئیات قابل مشاهده است.
کاربران میتوانند از تنظیمات سیستم برای انتخاب سطح جزئیات قابل مشاهده در اعلانهای صفحه قفل یا غیرفعال کردن همه اعلانهای صفحه قفل استفاده کنند. با شروع اندروید 8.0، کاربران میتوانند اعلانهای صفحه قفل را برای هر کانال اعلان غیرفعال یا فعال کنند.
شکل 4. اعلان ها در صفحه قفل با محتوای حساس پنهان شده است.
برای کسب اطلاعات بیشتر، به تنظیم نمایان بودن صفحه قفل مراجعه کنید.
نشان نماد برنامه
در راهاندازهای پشتیبانیشده در دستگاههای دارای Android 8.0 (سطح API 26) و بالاتر، نمادهای برنامه اعلانهای جدید را با نشان رنگی که به عنوان نقطه اعلان در نماد راهانداز برنامه مربوطه شناخته میشود، نشان میدهند.
کاربران میتوانند نماد برنامه را لمس کرده و نگه دارند تا اعلانهای آن برنامه را ببینند. کاربران میتوانند اعلانها را از آن منو حذف کنند یا مانند کشوی اعلانها به آن عمل کنند.
شکل 5. نشان های اعلان و منوی لمس و نگه داشتن.
برای کسب اطلاعات بیشتر درباره نحوه عملکرد نشانها، اصلاح نشان اعلان را بخوانید.
دستگاه های سیستم عامل را بپوشید
اگر کاربر یک دستگاه Wear OS جفت شده داشته باشد، همه اعلانهای شما بهطور خودکار در آنجا ظاهر میشوند، از جمله جزئیات قابل ارتقا و دکمههای عملکرد.
میتوانید با سفارشیسازی ظاهر اعلانهای خود در پوشیدنیها و با ارائه اقدامات مختلف، از جمله پاسخهای پیشنهادی و پاسخهای ورودی صوتی، تجربه را افزایش دهید. برای اطلاعات بیشتر، نحوه افزودن ویژگیهای خاص پوشیدنی را به اعلان خود ببینید.
شکل 6. اعلان ها به طور خودکار در یک دستگاه Wear OS جفت شده ظاهر می شوند.
آناتومی اعلان
طراحی یک اعلان توسط الگوهای سیستم تعیین می شود و برنامه شما محتویات هر قسمت از الگو را مشخص می کند. برخی از جزئیات اعلان فقط در نمای باز شده ظاهر می شوند.
شکل 7. یک اعلان با جزئیات اساسی.
متداول ترین بخش های یک اعلان در شکل 7 به شرح زیر نشان داده شده است:
- نماد کوچک: مورد نیاز. با استفاده از
setSmallIcon()
تنظیم کنید. - نام برنامه: ارائه شده توسط سیستم.
- تمبر زمان: توسط سیستم ارائه می شود، اما می توانید با استفاده از
setWhen()
آن را لغو کنید یا با استفاده ازsetShowWhen(false)
آن را پنهان کنید. - نماد بزرگ: اختیاری. معمولا فقط برای عکس های مخاطب استفاده می شود. از آن برای نماد برنامه خود استفاده نکنید. با استفاده از
setLargeIcon()
تنظیم کنید. - عنوان: اختیاری با استفاده از
setContentTitle()
تنظیم کنید. - متن: اختیاری با استفاده از
setContentText()
تنظیم کنید.
ما قویاً استفاده از قالب های سیستم را برای سازگاری مناسب طراحی در همه دستگاه ها توصیه می کنیم. در صورت لزوم، می توانید یک طرح اعلان سفارشی ایجاد کنید .
برای اطلاعات بیشتر درباره نحوه ایجاد اعلان با این ویژگی ها و موارد دیگر، ایجاد اعلان را بخوانید.
اقدامات اطلاع رسانی
اگرچه لازم نیست، اما برای هر اعلان باز کردن یک فعالیت برنامه مناسب زمانی که روی آن ضربه زده میشود، تمرین خوبی است. علاوه بر این اقدام پیشفرض اعلان، میتوانید همانطور که در شکل 8 نشان داده شده است، دکمههای عملکردی را اضافه کنید که یک کار مرتبط با برنامه را از اعلان تکمیل میکنند - اغلب بدون باز کردن یک فعالیت.
شکل 8. یک اعلان با دکمه های عمل.
با شروع Android 7.0 (سطح API 24)، میتوانید اقدامی برای پاسخ دادن به پیامها یا وارد کردن متن دیگر به طور مستقیم از اعلان اضافه کنید.
با شروع اندروید 10 (سطح API 29)، این پلتفرم میتواند بهطور خودکار دکمههای عمل را با کنشهای مبتنی بر هدف پیشنهادی ایجاد کند.
افزودن دکمههای اقدام در ایجاد اعلان بیشتر توضیح داده شده است.
نیاز به یک دستگاه قفل نشده است
کاربران ممکن است اقدامات اعلان را در صفحه قفل دستگاه ببینند. اگر یک اقدام اعلان باعث شود یک برنامه فعالیتی را راه اندازی کند یا یک پاسخ مستقیم ارسال کند، کاربران باید قبل از اینکه برنامه بتواند آن اقدام اعلان را فراخوانی کند، قفل دستگاه را باز کنند.
در Android 12 (سطح 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();
اعلان قابل ارتقا
بهطور پیشفرض، محتوای متنی اعلان به گونهای کوتاه شده است که در یک خط قرار بگیرد. اگر میخواهید اعلان طولانیتر باشد، میتوانید با اعمال یک الگوی اضافی، ناحیه متن بزرگتری را فعال کنید که قابل گسترش است، همانطور که در شکل 9 نشان داده شده است.
شکل 9. یک اعلان قابل ارتقا برای متن بزرگ.
همچنین میتوانید با یک تصویر، به سبک صندوق ورودی، با مکالمه چت یا با کنترلهای پخش رسانه، یک اعلان قابل ارتقا ایجاد کنید. برای اطلاعات بیشتر، ایجاد اعلان قابل ارتقا را بخوانید.
به روز رسانی اعلان ها و گروه ها
برای جلوگیری از هجوم اعلانهای چندگانه یا اضافی به کاربران خود در صورت داشتن بهروزرسانیهای اضافی، یک اعلان موجود را بهجای صدور اعلان جدید بهروزرسانی کنید یا از اعلان به سبک صندوق ورودی برای نمایش بهروزرسانیهای مکالمه استفاده کنید.
با این حال، اگر لازم است چندین اعلان ارائه کنید، اعلانهای جداگانه را در یک گروه گروهبندی کنید که در اندروید 7.0 و بالاتر موجود است.
یک گروه اعلان به شما امکان می دهد چندین اعلان را در یک پست در کشوی اعلان با یک خلاصه جمع کنید. همانطور که در شکل 10 نشان داده شده است، کاربر می تواند به تدریج گروه اعلان و هر اعلان در آن را برای جزئیات بیشتر گسترش دهد.
شکل 10. یک گروه اعلان کوچک و گسترده.
برای آشنایی با نحوه افزودن اعلانها به یک گروه، به ایجاد گروهی از اعلانها مراجعه کنید.
کانال های اطلاع رسانی
با شروع Android 8.0 (سطح API 26)، همه اعلانها باید به یک کانال اختصاص داده شوند وگرنه ظاهر نمیشوند. این به کاربران اجازه میدهد به جای غیرفعال کردن همه اعلانهای شما، کانالهای اعلان خاصی را برای برنامه شما غیرفعال کنند. همانطور که در شکل 11 نشان داده شده است، کاربران می توانند گزینه های دیداری و شنیداری هر کانال را از تنظیمات سیستم اندروید کنترل کنند. کاربران همچنین می توانند برای تغییر رفتار کانال مرتبط، یک اعلان را لمس کرده و نگه دارند.
در دستگاههای دارای Android 7.1 (سطح API 25) و پایینتر، کاربران میتوانند اعلانها را فقط بر اساس هر برنامه مدیریت کنند. هر برنامه به طور موثر فقط یک کانال در اندروید 7.1 و پایین تر دارد.
شکل 11. تنظیمات اعلان برای برنامه ساعت و یکی از کانال های آن.
یک برنامه می تواند کانال های جداگانه ای برای هر نوع اعلانی که برنامه صادر می کند، داشته باشد. یک برنامه همچنین می تواند کانال های اطلاع رسانی را در پاسخ به انتخاب های کاربران ایجاد کند. برای مثال، میتوانید کانالهای اعلان جداگانه برای هر گروه مکالمه ایجاد شده توسط کاربر در یک برنامه پیامرسانی تنظیم کنید.
این کانال همچنین جایی است که سطح اهمیت اعلانهای خود را در اندروید 8.0 و بالاتر مشخص میکنید، بنابراین همه اعلانهای ارسال شده در یک کانال اعلان رفتار یکسان دارند. این در بخش زیر توضیح داده شده است.
برای اطلاعات بیشتر، به ایجاد و مدیریت کانالهای اعلان مراجعه کنید.
اهمیت اطلاع رسانی
اندروید از اهمیت نوتیفیکیشن استفاده می کند تا مشخص کند که اعلان تا چه حد به صورت دیداری و شنیداری کاربر را قطع می کند. هرچه اهمیت یک اعلان بیشتر باشد، اعلان مزاحم تر است.
در اندروید 7.1 (سطح API 25) و پایینتر، اهمیت اعلان با priority
اعلان تعیین میشود.
در اندروید 8.0 (سطح API 26) و بالاتر، اهمیت اعلان با importance
کانالی که اعلان در آن پست می شود تعیین می شود. همانطور که در شکل 12 نشان داده شده است، کاربران می توانند اهمیت یک کانال اعلان را در تنظیمات سیستم تغییر دهند.
شکل 12. کاربران می توانند اهمیت هر کانال را در اندروید 8.0 و بالاتر تغییر دهند.
سطوح اهمیت احتمالی و رفتارهای اطلاع رسانی مرتبط به شرح زیر است:
فوری: صدا می دهد و به عنوان یک اعلان هدآپ ظاهر می شود.
بالا: صدا می دهد.
متوسط: هیچ صدایی تولید نمی کند.
کم: صدایی تولید نمی کند و در نوار وضعیت ظاهر نمی شود.
همه اعلانها، صرفنظر از اهمیت، در مکانهای UI سیستم بدون وقفه، مانند کشوی اعلانها و بهعنوان نشان روی نماد راهانداز ظاهر میشوند. با این حال، می توانید ظاهر نشان اعلان را تغییر دهید .
برای اطلاعات بیشتر، درباره نحوه تعیین اهمیت بخوانید.
حالت مزاحم نشوید
با شروع اندروید 5.0 (سطح API 21)، کاربران میتوانند حالت مزاحم نشوید را فعال کنند، که صدا و لرزش را برای همه اعلانها خاموش میکند. اعلانها همچنان در رابط کاربری سیستم به صورت عادی ظاهر میشوند، مگر اینکه کاربر چیز دیگری را مشخص کند.
سه سطح در حالت مزاحم نشوید وجود دارد:
- سکوت کامل: تمام صداها و ارتعاشات از جمله آلارم ها، موسیقی، ویدیوها و بازی ها را مسدود می کند.
- فقط هشدارها: همه صداها و ارتعاشات را مسدود می کند، به جز آلارم ها.
- فقط اولویت: کاربران میتوانند پیکربندی کنند که کدام دستههای سیستم میتوانند آنها را قطع کنند، مانند فقط هشدارها، یادآوریها، رویدادها، تماسها یا پیامها. برای پیام ها و تماس ها، کاربران می توانند بر اساس فرستنده یا تماس گیرنده فیلتر کنند، همانطور که در شکل 13 نشان داده شده است.
شکل 13. کاربران می توانند اعلان ها را بر اساس دسته بندی های کل سیستم (چپ) و فرستنده یا تماس گیرنده (راست) مجاز کنند.
در Android 8.0 (سطح API 26) و بالاتر، کاربران میتوانند علاوه بر این، اعلانها را برای دستههای خاص برنامه - که به عنوان کانالها نیز شناخته میشوند - با لغو مزاحم نشوید به صورت کانال به کانال اجازه دهند. به عنوان مثال، یک برنامه پرداخت ممکن است کانال هایی برای اعلان های مربوط به برداشت و واریز داشته باشد. کاربر میتواند در حالت اولویت، اعلانهای برداشت، اعلانهای واریز یا هر دو را مجاز کند.
در دستگاههای دارای Android 7.1 (سطح API 25) و پایینتر، کاربران میتوانند به جای کانال به کانال، اعلانها را بر اساس برنامه به برنامه اجازه دهند.
برای پیکربندی اعلانهای خود برای این تنظیمات کاربر، باید یک دسته سیستم را تنظیم کنید .
اعلان خدمات پیش زمینه
زمانی که برنامه شما یک سرویس پیشزمینه را اجرا میکند، یک اعلان لازم است - Service
که در پسزمینه اجرا میشود که عمر طولانی دارد و برای کاربر قابل توجه است، مانند پخشکننده رسانه. این اعلان را نمی توان مانند سایر اعلان ها رد کرد. برای حذف اعلان، سرویس باید متوقف شود یا از حالت پیش زمینه خارج شود.
برای اطلاعات بیشتر، خدمات پیش زمینه را بخوانید. اگر در حال ساختن یک پخش کننده رسانه هستید، پخش رسانه در پس زمینه را نیز بخوانید.
رفتارهای اطلاع رسانی
خنک شدن
اندروید 16.0، API سطح 36
اعلان ها اکنون از طرف برنامه به صورت خودکار گروه بندی می شوند.
اعلانهای زیر بهطور خودکار گروهبندی میشوند: - اعلانها بدون خلاصه - اعلانهای بدون اعلانهای فرزند - اعلانهایی با اعلانهای تکی یا کم
Android 15.0، API سطح 35
اندروید 15 یک ویژگی خنکسازی اعلانها را معرفی میکند که هدف آن بهبود تجربه اعلانهایی است که بهسرعت دریافت میشوند. این ویژگی ظاهر، حجم صدا و شدت لرزش اعلان های تکراری را تا دو دقیقه کاهش می دهد.
اعلانهای مهمی که برای جلب توجه به صدا و لمس لمسی نیاز دارند، در معرض سرد شدن نیستند. کاربر می تواند خنک شدن اعلان را در تنظیمات خاموش کند.
شکل 9. تنظیمات خنک کننده اعلان.
در زیر نمونه ای از نحوه تعیین مکان تنظیمات خنک کننده اعلان آورده شده است:
کاتلین
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)