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