اعلان پیامی است که Android خارج از واسط کاربر برنامه شما نمایش میدهد تا به کاربر یادآوری کند، ارتباطات دیگران را به او اطلاع دهد، یا اطلاعات بهموقع دیگری از برنامه شما ارائه دهد. کاربران میتوانند روی اعلان تکضرب بزنند تا برنامه شما را باز کنند یا مستقیماً از اعلان اقدامی انجام دهند.
این صفحه نمای کلی از مکان نمایش اعلانها و ویژگیهای دردسترس را ارائه میدهد.
راهنمای پیادهسازی
راهنماهای زیر نحوه پیادهسازی ویژگیهای مختلف اعلان در برنامه شما را نشان میدهد:
- ایجاد اعلان: با نحوه ساختن و صادر کردن اعلان پایه آشنا شوید.
- اجازه اعلان:
با نحوه مدیریت اجازه زمان اجرا
POST_NOTIFICATIONSآشنا شوید. - کانالهای اعلان: به کاربران امکان میدهد رفتار اعلان را کنترل کنند.
- اعلانهای ازهم بازشدنی:
بااستفاده از سبکهایی مثل
BigTextStyleیاMessagingStyleمحتوای بیشتری نشان دهید. - حبابکها: از رونهادهای شناور و ازهم بازشدنی برای مکالمهها استفاده کنید.
- اعلانهای پیشرفتمحور: سفرهای آغازشده توسط کاربر مثل همسفری و تحویل را پیگیری میکند.
- اعلانهای سبک تماس: تماسهای ورودی و درحال انجام را از دیگر انواع اعلان متمایز میکند.
- اعلانهای بهروزرسانی زنده: پیشرفت فعالیتهای جاری را پیگیری کنید.
- راهنمای اعلانهای مختص «نما»: راهنمای پیادهسازی اعلانها در برنامههای مبتنی بر «نما».
برای اطلاعات بیشتر درباره طراحی اعلان و الگوهای تعامل، به راهنمای طراحی اعلانها مراجعه کنید.
ظاهر در دستگاه
اعلانها بهطور خودکار در مکانها و قالبهای مختلف برای کاربران نمایش داده میشوند. اعلان بهصورت نمادی در نوار وضعیت، ورودی دقیقتر در کشوی اعلان، و نشان روی نماد برنامه ظاهر میشود.
رفتار بیندستگاهی
اعلانها بهطور پیشفرض در فناوریهای پوشیدنی جفتشده نیز نشان داده میشوند. در سناریوهایی که محتوای
اعلان فقط به دستگاه منبع مربوط است، از
setLocalOnly() استفاده کنید. برای مثال، اعلانی که تأیید میکند بارگیری رسانه تکمیل شده است. برای راهنماییهای بیشتر درباره اعلانهای Wear OS، به راهنماییهای
اعلانهای Wear OS مراجعه کنید.
نوار وضعیت و کشوی اعلان
وقتی اعلانی صادر میکنید، ابتدا بهصورت نمادی در نوار وضعیت نشان داده میشود.
کاربران میتوانند در نوار وضعیت تند بهپایین بکشند تا کشوی اعلان را باز کنند، در این کشو میتوانند جزئیات بیشتری را مشاهده کنند و با اعلان کنش انجام دهند.
کاربران میتوانند اعلان را در کشو پایین بکشند تا نمای گسترده آن نشان داده شود، که درصورت ارائه، محتوای اضافی و دکمههای کنش را نشان میدهد. از Android 13، این نمای گسترده شامل دکمهای است که به کاربران امکان میدهد برنامهای را که سرویسهای پیشزمینهای جاری دارد متوقف کنند.
اعلان تا زمانی که توسط برنامه یا کاربر بسته نشود در کشوی اعلانها قابلمشاهده باقی میماند.
اعلان هشدار اولیه
از Android 5.0، اعلانها میتوانند بهطور خلاصه در پنجرهای شناور به نام اعلان سرصفحه ظاهر شوند. این رفتار معمولاً برای اعلانهای مهمی است که کاربر باید فوراً از آنها مطلع شود و فقط درصورتی نشان داده میشود که قفل دستگاه باز باشد.
وقتی برنامه شما اعلان صادر میکند، اعلان هشدار نشان داده میشود. این اعلان پساز لحظهای ناپدید میشود، اما مانند همیشه در کشوی اعلانها قابلمشاهده باقی میماند.
شرایطی که ممکن است باعث فعال شدن اعلانهای لحظهای شود شامل موارد زیر است:
فعالیت کاربر در حالت تمامصفحه است، مثلاً وقتی برنامه از
fullScreenIntentاستفاده میکند.اعلان اولویت بالا دارد و در دستگاههای دارای Android 7.1 (میانای برنامه کاربردی سطح ۲۵) و پایینتر از آهنگ زنگ یا لرزش استفاده میکند.
کانال اعلان در دستگاههای دارای Android 8.0 (سطح API 26) و بالاتر اهمیت بالایی دارد.
صفحه قفل
از Android 5.0 به بعد، اعلانها میتوانند در صفحه قفل نشان داده شوند.
میتوانید بهصورت برنامهریزیشده تنظیم کنید که اعلانهای پستشده توسط برنامه شما در صفحه قفل امن نشان داده شود یا نه و درصورت نشان داده شدن، سطح جزئیات قابلمشاهده چقدر باشد.
کاربران میتوانند از تنظیمات سیستم برای انتخاب سطح جزئیات قابلمشاهده در اعلانهای صفحه قفل یا برای غیرفعال کردن همه اعلانهای صفحه قفل استفاده کنند. از Android 8.0، کاربران میتوانند اعلانهای صفحه قفل را برای هر کانال اعلان غیرفعال یا فعال کنند.
برای کسب اطلاعات بیشتر، تنظیم رؤیتپذیری صفحه قفل را ببینید.
نشان نماد برنامه
در راهاندازهای پشتیبانیشده در دستگاههای دارای Android 8.0 (سطح میانای برنامه کاربردی ۲۶) و بالاتر، نمادهای برنامه اعلانهای جدید را با نشان رنگی نشان میدهند که بهعنوان نقطه اعلان در نماد راهانداز برنامه مربوطه شناخته میشود.
کاربران میتوانند روی نماد برنامه لمس طولانی کنند تا اعلانهای آن برنامه را ببینند. کاربران میتوانند اعلانها را از آن منو رد کنند یا براساس آنها اقدام کنند، مشابه کشوی اعلان.
برای کسب اطلاعات بیشتر درباره نحوه عملکرد نشانها، اصلاح نشان اعلان را بخوانید.
دستگاههای Wear OS
اگر کاربر دستگاه Wear OS جفتشده داشته باشد، همه اعلانهای شما بهطور خودکار در آنجا نشان داده میشود، ازجمله جزئیات ازهم بازشدنی و دکمههای کنش.
با سفارشیسازی ظاهر اعلانها در پوشیدنیها و ارائه کنشهای مختلف، ازجمله پاسخهای پیشنهادی و پاسخهای ورودی صوتی، میتوانید تجربه را بهبود دهید. برای اطلاعات بیشتر، ببینید چگونه ویژگیهای مخصوص پوشیدنی را به اعلانتان اضافه کنید.
ساختار اعلان
طراحی اعلان توسط الگوهای سیستم تعیین میشود و برنامه شما محتوای هر بخش از الگو را تعریف میکند. برخیاز جزئیات اعلان فقط در نمای ازهم بازشده نشان داده میشود.
رایجترین بخشهای اعلان در شکل ۷ به شرح زیر نشان داده شده است:
- نماد کوچک: الزامی است؛ بااستفاده از
setSmallIcon()تنظیم میشود. - نام برنامه: توسط سیستم ارائه میشود.
- مهر زمان: توسط سیستم ارائه میشود، اما میتوانید بااستفاده از
setWhen()آن را ملغی کنید یا بااستفاده ازsetShowWhen(false)آن را پنهان کنید. - نماد بزرگ: اختیاری؛ معمولاً فقط برای عکسهای مخاطب استفاده میشود.
از آن برای نماد برنامه استفاده نکنید. تنظیمشده با
setLargeIcon(). - عنوان: اختیاری؛ بااستفاده از
setContentTitle()تنظیم میشود. - نوشتار: اختیاری؛ بااستفاده از
setContentText()تنظیم میشود.
بهشدت توصیه میکنیم از الگوهای سیستم برای سازگاری طراحی مناسب در همه دستگاهها استفاده کنید. درصورت لزوم، میتوانید چیدمان اعلان سفارشی ایجاد کنید.
برای اطلاعات بیشتر درباره نحوه ایجاد اعلان با این ویژگیها و ویژگیهای دیگر، ایجاد اعلان را بخوانید.
عملکردهای اعلان
اگرچه الزامی نیست، اما بهتر است هر اعلانی با تکضرب زدن روی آن، فعالیت برنامه مناسبی را باز کند. علاوهبر این کنش اعلان پیشفرض، میتوانید دکمههای کنشی اضافه کنید که کار مربوط به برنامه را از اعلان تکمیل میکنند—اغلب بدون باز کردن فعالیت—همانطور که در شکل ۸ نشان داده شده است.
از Android 7.0 (سطح میانای برنامهسازی کاربردی ۲۴) به بعد، میتوانید اقدامی برای پاسخ دادن به پیامها اضافه کنید یا مستقیماً از اعلان نوشتار دیگری وارد کنید.
از Android 10 (سطح API 29) به بعد، پلاتفرم میتواند بهطور خودکار دکمههای کنش با کنشهای پیشنهادی مبتنی بر هدف تولید کند.
افزودن دکمههای کنش در ایجاد اعلان بیشتر توضیح داده شده است.
دستگاه باید قفلگشایی شده باشد
کاربران ممکن است کنشهای اعلان را در صفحه قفل دستگاه ببینند. اگر کنش اعلان باعث شود برنامه فعالیتی راهاندازی کند یا پاسخ مستقیمی ارسال کند، کاربران باید قبلاز اینکه برنامه بتواند آن کنش اعلان را فراخوانی کند، قفل دستگاه را باز کنند.
در Android 12 (سطح میانای برنامهسازی کاربردی ۳۱) و بالاتر، میتوانید کنش اعلانی را بهگونهای پیکربندی کنید که برای فراخوانی آن کنش توسط برنامهتان، دستگاه باید قفل باشد، مهم نیست کنش چه گردش کاری را راهاندازی میکند. این گزینه لایه امنیتی اضافی به اعلانهای دستگاههای قفلشده اضافه میکند.
برای اینکه دستگاه قبلاز فراخوانی کنش اعلان معینی توسط برنامه شما باز شود،
هنگام ایجاد کنش اعلان، 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 7.0 و نسخههای بالاتر دردسترس است.
گروه اعلان به شما امکان میدهد چندین اعلان را در یک پست در کشو اعلان با خلاصه جمع کنید. کاربر میتواند گروه اعلان و هر اعلان درون آن را بهتدریج برای مشاهده جزئیات بیشتر ازهم باز کند، همانطور که در شکل ۱۰ نشان داده شده است.
برای آشنایی با نحوه افزودن اعلان به گروه، ایجاد گروه اعلان را ببینید.
کانالهای اعلان
از Android 8.0 (سطح میانای برنامهسازی کاربردی ۲۶)، همه اعلانها باید به کانالی اختصاص داده شوند، درغیراینصورت نمایش داده نمیشوند. این کار به کاربران امکان میدهد کانالهای اعلان خاصی را برای برنامه شما غیرفعال کنند، بهجای اینکه همه اعلانهای شما را غیرفعال کنند. کاربران میتوانند گزینههای دیداری و شنیداری هر کانال را از تنظیمات سیستم Android کنترل کنند، همانطور که در شکل ۱۱ نشان داده شده است. کاربران همچنین میتوانند اعلانی را لمس کنند و نگه دارند تا رفتار کانال مربوطه را تغییر دهند.
در دستگاههایی که از Android 7.1 (میانای برنامه کاربردی سطح ۲۵) و پایینتر استفاده میکنند، کاربران فقط میتوانند اعلانها را براساس هر برنامه مدیریت کنند. هر برنامه در Android 7.1 و نسخههای پایینتر عملاً فقط یک کانال دارد.
یک برنامه میتواند برای هر نوع اعلانی که صادر میکند کانالهای جداگانه داشته باشد. برنامه همچنین میتواند در پاسخ به انتخابهای کاربران، کانالهای اعلان ایجاد کند. برای مثال، میتوانید کانالهای اعلان جداگانهای برای هر گروه مکالمهای که کاربر در برنامه پیامرسانی ایجاد کرده است راهاندازی کنید.
کانال همچنین جایی است که سطح اهمیت اعلانهایتان را در Android 8.0 و بالاتر مشخص میکنید، بنابراین همه اعلانهایی که در یک کانال اعلان یکسان پست میشوند رفتار یکسانی دارند. این موضوع در بخش زیر توضیح داده شده است.
برای اطلاعات بیشتر، ایجاد و مدیریت کانالهای اعلان را ببینید.
اهمیت اعلان
Android از اهمیت اعلان برای تعیین میزان اختلال اعلان در تجربه دیداری و شنیداری کاربر استفاده میکند. هرچه اهمیت اعلان بیشتر باشد، اعلان مزاحمتر است.
در Android نسخه ۷.۱ (سطح API 25) و پایینتر، اهمیت اعلان با priority اعلان تعیین میشود.
در Android 8.0 (سطح API 26) و بالاتر، اهمیت اعلان براساس importance کانالی که اعلان در آن پست میشود تعیین میشود. کاربران میتوانند اهمیت کانال اعلان را در تنظیمات سیستم تغییر دهند، همانطور که در شکل ۱۲ نشان داده شده است.
سطوح اهمیت ممکن و رفتارهای اعلان مرتبط به شرح زیر است:
فوری: صدا تولید میکند و بهعنوان اعلان سرصفحه نشان داده میشود.
زیاد: صدایی تولید میکند.
متوسط: صدایی تولید نمیکند.
پایین: صدایی تولید نمیکند و در نوار وضعیت نشان داده نمیشود.
همه اعلانها، صرفنظر از اهمیت، در مکانهای رابط کاربری سیستم غیرمزاحم، مانند کشوی اعلان و بهعنوان نشان روی نماد راهانداز، ظاهر میشوند. بااینحال، میتوانید ظاهر نشان اعلان را تغییر دهید.
برای اطلاعات بیشتر، درباره نحوه تنظیم اهمیت بخوانید.
حالت «مزاحم نشوید»
از Android 5.0 (سطح API 21)، کاربران میتوانند حالت «مزاحم نشوید» را فعال کنند که صدا و لرزش همه اعلانها را بیصدا میکند. اعلانها همچنان بهطور معمول در واسط کاربر سیستم ظاهر میشوند، مگر اینکه کاربر خلاف آن را مشخص کند.
سه سطح در حالت «مزاحم نشوید» دردسترس است:
- سکوت کامل: همه صداها و لرزشها، ازجمله زنگ ساعت، موسیقی، ویدیو، و بازیها را مسدود میکند.
- فقط زنگهای هشدار: همه صداها و لرزشها را بهجز زنگهای هشدار مسدود میکند.
- فقط اولویت: کاربران میتوانند پیکربندی کنند کدام دستههای سراسری سیستم میتوانند آنها را قطع کنند، مثلاً فقط زنگهای هشدار، یادآوریها، رویدادها، تماسها، یا پیامها. برای پیامها و تماسها، کاربران میتوانند براساس فرستنده یا تماسگیرنده فیلتر کنند، همانطور که در شکل ۱۳ نشان داده شده است.
در Android 8.0 (سطح API 26) و بالاتر، کاربران میتوانند علاوهبر این، اعلانها را ازطریق دستههای مختص برنامه—که بهعنوان کانال نیز شناخته میشوند—با ملغی کردن «مزاحم نشوید» براساس کانال به کانال مجاز کنند. برای مثال، برنامه پرداخت ممکن است کانالهایی برای اعلانهای مربوط به برداشت و واریز داشته باشد. کاربر میتواند اعلانهای برداشت، اعلانهای واریز، یا هر دو را در حالت اولویت مجاز کند.
در دستگاههایی که از Android 7.1 (میانای برنامه کاربردی سطح ۲۵) و پایینتر استفاده میکنند، کاربران میتوانند اعلانها را بهصورت برنامه به برنامه مجاز کنند، نه بهصورت کانال به کانال.
برای پیکربندی اعلانهایتان برای این تنظیمات کاربر، باید دستهای در سطح سیستم تنظیم کنید.
اعلانهای سرویسهای پیشزمینهای
وقتی برنامهتان سرویس پیشزمینهای اجرا میکند، اعلان الزامی است. Service سرویس پیشزمینهای سرویسی است که در پسزمینه اجرا میشود، عمر طولانی دارد، و برای کاربر محسوس است، مثل پخشکننده رسانه. این اعلان را نمیتوانید مثل اعلانهای دیگر ببندید. برای برداشتن اعلان، سرویس باید متوقف شود یا از حالت پیشزمینه برداشته شود.
برای کسب اطلاعات بیشتر، خدمات پیشزمینهای را بخوانید. اگر درحال ساختن پخشکننده رسانه هستید، پخش رسانه در پسزمینه را نیز بخوانید.
عملکردهای اعلان
Android 16.0، سطح API 36
اکنون اعلانها ازطرف برنامه بهطور خودکار گروهبندی میشوند.
اعلانهای زیر بهطور خودکار گروهبندی میشوند:
- اعلانهای بدون خلاصه
- اعلانها بدون اعلانهای کودک
- اعلانهای دارای یک یا تعداد کمی اعلان فرزند
Android 15.0، سطح API 35
استراحت
Android 15 ویژگی استراحت اعلانها را معرفی میکند که هدف آن بهبود تجربه اعلانهایی است که بهسرعت پشت سر هم میرسند. این ویژگی ظاهر، حجم صدا، و شدت لرزش را برای اعلانهای تکراری تا دو دقیقه کاهش میدهد.
اعلانهای مهمی که برای جلب توجه به صدا و بازخورد لمسی نیاز دارند تابع دوره انتظار نیستند. کاربر میتواند «استراحت اعلانها» را در «تنظیمات» خاموش کند.