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

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

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

کارت‌های اعلان تبلیغ‌شده دارای ویژگی‌های ظاهری زیر هستند:

  • ازهم بازشده به‌طور پیش‌فرض
  • جمع‌نشدنی

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

خصوصیات تبلیغ ویژه

میاناهای برنامه‌سازی کاربردی زیر به شما کمک می‌کنند تعیین کنید آیا سیستم اعلان شما را ارتقا می‌دهد یا نه:

  • Notification.FLAG_PROMOTED_ONGOING نشان می‌دهد که آیا اعلان تبلیغ شده است یا نه.
  • Notification.hasPromotableCharacteristics() تأیید می‌کند که آیا سیستم می‌تواند اعلان را ارتقا دهد یا نه. این روش درنظر نمی‌گیرد که آیا کاربر «به‌روزرسانی‌های زنده» را برای برنامه در تنظیمات غیرفعال کرده است یا نه.
  • NotificationManager.canPostPromotedNotifications() بررسی می‌کند که آیا برنامه شما می‌تواند اعلان تبلیغ‌شده‌ای را پست کند یا نه، برای مثال، اگر کاربر آن را در تنظیمات فعال یا غیرفعال کرده باشد.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS کنش قصدی است که به برنامه‌ها اجازه می‌دهد کاربران را به «تنظیمات» بفرستند تا این ویژگی را فعال کنند.

معیارهای استفاده

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

شکل ۲. به‌روزرسانی زنده در صفحه اصلی و صفحه قفل، و به‌صورت تراشه.

درحال انجام

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

«به‌روزرسانی‌های زنده» نشان‌دهنده فعالیت‌های جاری است. از «به‌روزرسانی‌های زنده» برای ارائه دسترسی سریع به عملکرد برنامه استفاده نکنید. اگر می‌خواهید این کار را انجام دهید، از ابزاره برنامه یا کاشی سفارشی «تنظیمات فوری» استفاده کنید.

  • استفاده‌های مناسب: پیمایش فعال، تماس‌های تلفنی درحال انجام، پیگیری فعال سفر اشتراکی، و پیگیری فعال تحویل غذا.
  • استفاده‌های نامناسب: آگهی‌ها، تبلیغات، پیام‌های گپ، هشدارها، رویدادهای آتی تقویم، و دسترسی سریع به ویژگی‌های برنامه.

آغازشده ازسوی کاربر

بیشتر «به‌روزرسانی‌های زنده» باید نشان‌دهنده فعالیت‌هایی باشند که صریحاً توسط کاربر راه‌اندازی شده‌اند، مانند شروع تمرین، آغاز ناوبری رانندگی، یا درخواست سفر اشتراکی. اطلاعات محیطی، مثل اطلاعات مربوط به محیط کاربر، علایق، یا رویدادهای آتی را در «به‌روزرسانی زنده» نشان ندهید. اجازه ندهید فعالیت‌هایی که توسط طرف‌های دیگر راه‌اندازی شده‌اند «به‌روزرسانی‌های زنده» ایجاد کنند.

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

حساس به زمان

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

«به‌روزرسانی زنده» اغلب برای فعالیت‌هایی مناسب است که بین «به‌روزرسانی‌های زنده» و اعلان‌های عادی جابه‌جا می‌شوند. برای مثال، نشان دادن اعلان کارت پرواز چند ساعت قبل‌از پرواز کاربر مناسب است، اما این اعلان فقط زمانی باید به «به‌روزرسانی زنده» تبدیل شود که کاربر نیاز فوری داشته باشد، مثلاً وقتی به فرودگاه یا محل برگزاری رسیده باشد یا وقتی سوار شدن به هواپیما شروع شده باشد. درمقابل، «به‌روزرسانی زنده» برای پیگیری بسته مناسب نیست چون کاربر نیازی به نظارت مداوم بر آن ندارد.

روال‌های تجربه کاربری

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

ردیاب سفارشی روی نوار پیشرفت
شکل ۳.‏ نماد ردیاب سفارشی.

وقتی زمان تخمینی ورود درحال محاسبه است یا هنوز دردسترس نیست، حالت خالی نشان ندهید. نوشتار جای‌بان فعالی مثل «درحال فکر کردن…» یا «درحال تغییر مسیر…» ارائه دهید تا نشان دهید سیستم درحال کار است، همان‌طور که در مثال نشان داده شده است.

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

تراشه‌های وضعیت

تراشه‌های وضعیت به کاربران امکان می‌دهد وقتی اعلان در دید نیست، «به‌روزرسانی‌های زنده» را پیگیری کنند. از setShortCriticalText یا setWhen برای انتقال اطلاعات مهم وضعیت مربوط به اعلان پیشرفت‌محور استفاده کنید.

تراشه وضعیت با نماد
شکل ۵. وضعیت نامشخص نماد کوچک Notification.Builder#setSmallIcon را نمایش می‌دهد.
تراشه وضعیت با زمان
شکل ۶. از Notification.Builder#setShortCriticalText برای نمایش زمان مطلق استفاده کنید.
تراشه وضعیت با اطلاعات
شکل ۷. از Notification.Builder#setShortCriticalText برای انتقال اطلاعات مهم استفاده کنید.

وقتی زمان

زمان «when» شمارش معکوسی را برای طول عمر اعلان راه‌اندازی می‌کند، مگراینکه اعلان بسته یا به‌روز شود. در موارد زیر توضیح داده شده است که «زمان استراحت» در شرایط مختلف چگونه کار می‌کند:

  • زمان «چه وقت» حداقل ۲ دقیقه در آینده باشد: اگر زمان فعلی ۱۰:۰۵ صبح باشد و زمان «چه وقت» روی ۱۰:۱۰ صبح تنظیم شده باشد، تراشه ۵ دقیقه را نشان می‌دهد.
  • وقتی زمان در گذشته باشد: نوشتار نشان داده نمی‌شود.
  • هنگام استفاده از «زمان‌سنج» برای زمان، می‌توان زمان‌سنجی را در تراشه نشان داد. setUsesChronometer و setChronometerCountdown را ببینید. زمان‌سنج «کرونومتر» تا زمانی که مثبت باشد در تراشه نشان داده می‌شود.
  • نمی‌خواهید زمان در اعلان نشان داده شود: از setShowWhen تا FALSE استفاده کنید.

ظاهر تراشه وضعیت

تراشه وضعیت همیشه شامل نماد است و می‌تواند شامل نوشتار هم باشد. تراشه حداکثر عرض ۹۶dp دارد. نوشتار فقط درصورتی نشان داده می‌شود که کل نوشتار در تراشه جا شود. نوشتار بسته به معیارهای زیر نمایش داده می‌شود:

  • اگر کمتر از ۷ نویسه است، کل نوشتار را نشان دهید.
  • اگر کمتر از نیمی از نوشتار نمایش داده می‌شود، فقط نماد را نشان دهید.
  • اگر بیش‌از نیمی از نوشتار نمایش داده می‌شود، تا جایی که ممکن است نوشتار را نشان دهید.

Wear OS

«به‌روزرسانی‌های زنده» به برخی‌از دستگاه‌های Wear OS متصل پل شده است. برای راهنمایی درباره این رفتار پل‌سازی، و همچنین راهنمایی درباره نحوه ایجاد «به‌روزرسانی‌های زنده» محلی برای Wear OS، به راهنمای «به‌روزرسانی زنده» Wear OS مراجعه کنید.

بستن

کاربران می‌توانند رؤیت‌پذیری اعلان را در کرکره اعلان‌ها کنترل کنند. پست کردن «به‌روزرسانی‌های زنده» ناخواسته ممکن است باعث شود کاربران اجازه پست کردن برنامه را لغو کنند.

برای جلوگیری از غیرفعال کردن کامل «به‌روزرسانی‌های زنده» توسط کاربران، از پست کردن به‌روزرسانی‌هایی که ممکن است کاربران رد کنند خودداری کنید. «به‌روزرسانی‌های زنده» را که کاربر رد کرده است بازپست نکنید. از setDeleteIntent برای شناسایی به‌روزرسانی‌های بسته‌شده استفاده کنید.

برای آزمایش این میاناهای برنامه‌سازی کاربردی، برنامه نمونه را ببینید.

پرسشگان

سؤال: نقطه سفید در انتهای نوار پیشرفت چیست؟

نشانگر پایان تجسم دسترس‌پذیری پیشرفت
شکل ۸. تجسم دسترس‌پذیری پایان سفر

پاسخ: نقطه سفید در انتهای نوار پیشرفت به‌صورت دیداری انتهای نوار پیشرفت را نشان می‌دهد.

پرسش: چرا اعلان‌های سفارشی برای «به‌روزرسانی‌های زنده» پشتیبانی نمی‌شود؟

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