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

کارتهای اعلان تبلیغاتی دارای ویژگیهای ظاهری زیر هستند:
- به طور پیشفرض گسترشیافته
- غیرقابل جمع شدن
اعلان شما برای اینکه به عنوان یک بهروزرسانی زنده واجد شرایط باشد، باید شرایط زیر را داشته باشد:
- باید Standard Style،
BigTextStyle،CallStyleیاProgressStyleباشد. - باید مجوز غیر زمان اجرا زیر را در فایل مانیفست اندروید
android.permission.POST_PROMOTED_NOTIFICATIONSدرخواست کند. - باید با استفاده از
EXTRA_REQUEST_PROMOTED_ONGOINGیاNotificationCompat.Builder#setRequestPromotedOngoingدرخواست ارتقاء دهید. - باید
ongoingباشد (مقدارFLAG_ONGOING_EVENTتنظیم کنید). - باید یک مجموعه
contentTitleداشته باشد. - نباید هیچ مجموعه
customContentViewداشته باشد (بدونRemoteViews). - نباید خلاصهای از یک گروه با استفاده از
setGroupSummaryباشد. - نباید Colorized را روی
TRUEsetColorized. - کانال اعلان نباید دارای
IMPORTANCE_MINباشد.
ویژگیهای تبلیغاتی
API های زیر به شما کمک میکنند تا تعیین کنید که آیا سیستم اعلان شما را تبلیغ خواهد کرد یا خیر:
-
Notification.FLAG_PROMOTED_ONGOINGنشان میدهد که آیا اعلان تبلیغ شده است یا خیر. -
Notification.hasPromotableCharacteristics()اعتبارسنجی میکند که آیا سیستم میتواند اعلان را منتشر کند یا خیر. این متد بررسی نمیکند که آیا کاربر قابلیت بهروزرسانی زنده (Live Updates) را برای برنامه در تنظیمات غیرفعال کرده است یا خیر. -
NotificationManager.canPostPromotedNotifications()بررسی میکند که آیا برنامه شما میتواند یک اعلان تبلیغاتی ارسال کند یا خیر، برای مثال، آیا کاربر آن را در تنظیمات فعال یا غیرفعال کرده است. -
Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONSیک اکشن intent است که به برنامهها اجازه میدهد کاربران را برای فعال کردن این ویژگی به تنظیمات ارسال کنند.
معیارهای استفاده
از بهروزرسانیهای زنده برای فعالیتهایی که مداوم، توسط کاربر آغاز میشوند و حساس به زمان هستند، استفاده کنید.
در حال انجام
یک بهروزرسانی زنده باید نشاندهندهی فعالیتی باشد که بهطور فعال در حال انجام است و شروع و پایان مشخصی دارد. اگر فعالیتی در گذشته رخ داده است، از بهروزرسانی زنده استفاده نکنید. در عوض، از یک اعلان استاندارد استفاده کنید. این موضوع در مورد رویدادهایی که هنوز شروع نشدهاند نیز صادق است، اگرچه رویدادهایی که در شرف شروع هستند میتوانند از بهروزرسانی زنده استفاده کنند.
بهروزرسانیهای زنده نشاندهنده فعالیتهای مداوم هستند. از بهروزرسانیهای زنده برای ارائه دسترسی سریع به قابلیتهای برنامه استفاده نکنید. اگر میخواهید این کار را انجام دهید، از یک ویجت برنامه یا یک کاشی تنظیمات سریع سفارشی استفاده کنید.
- کاربردهای مناسب: ناوبری فعال، تماسهای تلفنی مداوم، ردیابی فعال در سفرهای اشتراکی و ردیابی فعال در تحویل غذا.
- کاربردهای نامناسب: تبلیغات، پروموشنها، پیامهای چت، هشدارها، رویدادهای تقویم آینده و دسترسی سریع به ویژگیهای برنامه.
توسط کاربر آغاز شده است
بیشتر بهروزرسانیهای زنده باید فعالیتهایی را که صریحاً توسط کاربر فعال میشوند، مانند شروع تمرین، شروع ناوبری رانندگی یا درخواست سفر اشتراکی، نشان دهند. اطلاعات محیطی، مانند اطلاعات مربوط به محیط کاربر، علایق یا رویدادهای آینده را در بهروزرسانی زنده نشان ندهید. اجازه ندهید فعالیتهایی که توسط اشخاص دیگر فعال میشوند، بهروزرسانیهای زنده ایجاد کنند.
گاهی اوقات، ممکن است کاربر عملی را انجام دهد که فعالیتی را برای مدتی در آینده آغاز کند. به عنوان مثال، اگر کاربر بلیط هواپیما یا کنسرت خریداری کند، در یک تورنمنت ثبت نام کند یا به هر طریق دیگری حضور آینده خود را در یک رویداد حساس به زمان نشان دهد. در این موارد، ممکن است نمایش خودکار بهروزرسانی زنده هنگام شروع رویداد برنامهریزی شده مناسب باشد. با این حال، برنامهها باید محرکهای خود را طوری تنظیم کنند که فقط در صورت قریبالوقوع بودن فعالیت ظاهر شوند. اگر کاربر صریحاً اعلام کند که میخواهد نظارت بر یک رویداد پسزمینه مانند یک بازی ورزشی را آغاز کند، میتوانید شروع به ارسال بهروزرسانیهای زنده برای آن رویداد کنید. با این حال، باید یک اقدام Unpin را نیز در اعلان مرتبط بگنجانید.
حساس به زمان
فقط در صورتی که بهروزرسانی زنده نیاز به توجه کاربر در طول فعالیت داشته باشد، آن را نمایش دهید. یکی از کاربردهای کلیدی بهروزرسانیهای زنده، نظارت است، زمانی که کاربر با نگاهی اجمالی به بهروزرسانی زنده، از وضعیت در حال تغییر فعالیت مطلع میشود و از این طریق سود قابل توجهی میبرد.
بهروزرسانی زنده اغلب برای فعالیتهایی مناسب است که بین بهروزرسانیهای زنده و اعلانهای معمولی در حال تغییر هستند. به عنوان مثال، نمایش اعلان کارت پرواز چند ساعت قبل از پرواز کاربر مناسب است، اما این اعلان باید فقط زمانی به بهروزرسانی زنده تبدیل شود که کاربر نیاز مبرمی داشته باشد، مانند زمانی که به فرودگاه یا محل برگزاری رسیدهاند یا زمانی که سوار شدن آغاز شده است. در مقابل، بهروزرسانی زنده برای ردیابی یک بسته مناسب نیست زیرا کاربر نیازی به نظارت مداوم بر این موضوع ندارد.
تراشههای وضعیت
تراشههای وضعیت به کاربران این امکان را میدهند که وقتی اعلان در حال مشاهده نیست، بهروزرسانیهای زنده را پیگیری کنند. از setShortCriticalText یا setWhen برای انتقال اطلاعات مهم وضعیت مربوط به اعلان متمرکز بر پیشرفت خود استفاده کنید.

Notification.Builder#setSmallIcon را نمایش میدهد. 
Notification.Builder#setShortCriticalText استفاده کنید. 
Notification.Builder#setShortCriticalText برای انتقال اطلاعات حیاتی.وقتی زمان
زمان «وقتی» شمارش معکوسی را برای طول عمر اعلان فعال میکند، مگر اینکه اعلان رد یا بهروزرسانی شود. موارد زیر نحوه عملکرد زمان «وقتی» را در موقعیتهای مختلف شرح میدهند:
- زمان «وقتی» حداقل ۲ دقیقه در آینده است: اگر زمان فعلی ۱۰:۰۵ صبح باشد و زمان «وقتی» روی ۱۰:۱۰ صبح تنظیم شده باشد، تراشه ۵ دقیقه را نشان میدهد.
- اگر زمان بیش از ۱ دقیقه گذشته باشد: اعلان نمایش داده نمیشود.
- هنگام استفاده از کرنومتر، میتوان یک تایمر در تراشه نشان داد که چه زمانی را نشان میدهد. به
setUsesChronometerوsetChronometerCountdownمراجعه کنید. تایمر کرنومتر تا زمانی که مثبت باشد، در تراشه نشان داده میشود. - اگر نمیخواهید زمان نمایش داده شدن اعلان شما نمایش داده شود، از
setShowWhenباFALSEاستفاده کنید.
ظاهر تراشه وضعیت
تراشه وضعیت همیشه شامل یک آیکون است و به صورت اختیاری شامل متن نیز میشود. حداکثر عرض تراشه 96dp است. متن فقط در صورتی نمایش داده میشود که کل متن در تراشه جا شود. متن بسته به معیارهای زیر نمایش داده میشود:
- اگر کمتر از ۷ کاراکتر باشد، کل متن را نمایش میدهد.
- اگر کمتر از نیمی از متن نمایش داده میشود، فقط آیکون را نمایش دهید.
- اگر بیش از نیمی از متن نمایش داده میشود، تا حد امکان متن را نمایش دهید.
اخراج
کاربران میتوانند میزان نمایش اعلانها را در قسمت اعلانها کنترل کنند. ارسال بهروزرسانیهای زنده ناخواسته ممکن است باعث شود کاربران مجوز ارسال برنامه را لغو کنند.
برای جلوگیری از غیرفعال کردن کامل بهروزرسانیهای زنده توسط کاربران، از ارسال بهروزرسانیهایی که ممکن است توسط کاربران رد شوند، خودداری کنید. بهروزرسانیهای زندهای را که کاربر رد کرده است، دوباره ارسال نکنید. از setDeleteIntent برای تشخیص بهروزرسانیهای رد شده استفاده کنید.
برای آزمایش این APIها، به برنامه نمونه مراجعه کنید.