اعلان‌ها و ویجت‌های مکالمه

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

با تکیه بر این ویژگی های اندروید 11، اندروید 12 دو ویژگی مکالمه جدید را ارائه می دهد:

  • ویژگی مکالمات اخیر در تنظیمات به کاربران امکان می‌دهد تا رفتار اعلان‌ها را برای مکالمات اخیر بدون انتظار برای اعلان سفارشی کنند.

  • ویژگی Conversation Widget به کاربران این امکان را می دهد تا به راحتی چت ها را در صفحه اصلی باز کنند و نمای سریعی از مکالمات اخیر ارائه دهند.

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

نمای کلی اعلان‌های مکالمه

اندروید 11 یک سیستم ابتدایی جدید به نام Conversation را معرفی می کند که با شی میانبر اشتراک گذاری موجود (که با اندروید 9 عرضه شد) نشان داده می شود.

Conversations primitive را می توان به صورت زیر استفاده کرد:

  • برای اشتراک‌گذاری داده‌های مکالمات بین برنامه‌ها در سراسر سیستم از طریق Sharesheet (از قبل در Android 10).

  • برای رانندگی حباب ها ( میانبرها در اندروید 11). شکل 1 را ببینید.

  • برای شرکت در فضای مکالمه جدید در بالای سایه اعلان (که در اندروید 11 پیاده سازی شده است). شکل 2 را ببینید.

  • برای ایجاد ابزارک مکالمه (اجرا شده در اندروید 12).

    conv_bubbles

    شکل 1: اعلان به صورت حباب از کشوی اعلان راه اندازی می شود

    conv_notification

    شکل 2: فضای مکالمه که در بالای صفحه Notification قرار دارد

این اعلان علاوه بر پیوند دادن به میانبر نشان دهنده مکالمه، از MessagingStyle نیز استفاده می کند تا آخرین پیام مکالمه را در فضای مکالمه قرار دهد.

شرکای GMS ملزم به اجرای موارد زیر هستند:

  • یک فضای مکالمات جدید به عنوان یک بخش جداگانه در بالای سایه اعلان.
  • یک سبک اعلان که به الگوی حباب خاص مکالمه اجازه می دهد و پشتیبانی می کند.

شرکایی که Conversations را اجرا می کنند ملزم به اجرای مکالمات مهم نیز هستند. با این حال، اجرای مکالمات را می توان با مفاهیم OEM با ماهیت مشابه هماهنگ کرد. به طور کلی، شرکا این آزادی را دارند که بخش مکالمه را با رابط کاربری سیستم خاص خود هماهنگ کنند. شریک نیازی به تغییر یا پیاده سازی HAL/درایور/کد هسته/برنامه های افزودنی ندارد.

پیاده سازی مرجع زیر را در بخش SystemUI و PeopleService در AOSP ببینید:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

اعتبار سنجی

برای اطمینان از اینکه نسخه شما از این ویژگی مطابق با هدف کار می کند، موارد زیر را تأیید کنید:

  1. برنامه‌هایی که به طور کامل از Conversation API پشتیبانی می‌کنند، اعلان‌های خود را در بخش جدید مشاهده می‌کنند و می‌توانند آن اعلان‌ها را با مکالمه به جای NotificationChannel عمومی سفارشی کنند.

  2. حباب های خاص مکالمه کار می کنند.

برای تأیید اعتبار پیاده سازی، از تست های زیر در بسته اعلان استفاده کنید:

  • تست های CTS

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • تست های تایید کننده CTS

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

نمای کلی ابزارک مکالمه

در Android 12، ویژگی Conversation Widget بر روی بازنمایی‌های مکالمه ایجاد شده در Android 11 (همانطور که در بخش قبل توضیح داده شد) ایجاد می‌شود و به برنامه‌ها اجازه می‌دهد تا وضعیت مکالماتی را که در ابزارک‌های مکالمه نمایش داده می‌شوند، ارائه دهند.

conv_widgets

شکل 3: مکالمات نمایش داده شده در ابزارک مکالمه

ویژگی Conversation Widget در اندروید 12 با اجازه دادن به کاربران برای باز کردن چت ها در صفحه اصلی، ارتباط را ارتقا می دهد. ویجت‌ها میانبرهای پیشرفته‌ای هستند که به کاربران اجازه می‌دهند به طور موثر به مکالمات خود بازگردند و در عین حال تکه‌هایی از وضعیت مکالمه را نشان دهند.

شریک باید موارد زیر را اجرا کند:

  1. ویجتی که توسط SystemUI ارائه شده است.
  2. جریانی برای افزودن این ویجت ها از صفحه انتخاب ویجت.
  3. پشتیبانی از تغییر اندازه ویجت به شرح زیر است:

هنگام اجرای ابزارک مکالمه از وابستگی های زیر آگاه باشید:

  • شریک مجبور نیست کد HAL/درایور/کرنل را اصلاح یا پیاده سازی کند.
  • Status API که به برنامه‌ها اجازه می‌دهد اطلاعات وضعیت یا در دسترس بودن را به مکالمه و ویجت مرتبط اضافه کنند، برای پیاده‌سازی استفاده می‌شود.
  • این فرآیند در اجرای دستگاه های جدید و پیاده سازی ارتقاء یکسان است.
  • ویژگی Conversation Widgets به ویژگی جدیدی که در اندروید 12 راه اندازی می شود، وابستگی دارد، که مکالمات اخیراً دیده شده (مثلاً از اعلان ها) را در حافظه پنهان ذخیره می کند. این ویژگی اخیر اجازه می دهد تا لیست مکالماتی را که کاربر می تواند به طور بالقوه به صفحه اصلی خود اضافه کند، گسترش دهد.

پیاده سازی مرجع زیر را در فایل های SystemUI و Launcher3 مشاهده کنید:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

سفارشی سازی

ویژگی ابزارک مکالمه را نمی توان روشن یا خاموش کرد. با این حال، تا زمانی که الزامات GMS برآورده شود، یک شریک می‌تواند طرح‌بندی قالب‌های ویجت را تغییر دهد.

اعتبار سنجی

برای اطمینان از اینکه نسخه شما از این ویژگی مطابق با هدف کار می کند، موارد زیر را تأیید کنید:

  1. با فشار طولانی روی Launcher، یک ویجت مکالمه جدید برای مکالمه را می توان از طریق انتخابگر ویجت اضافه کرد. شکل 4 را برای رابط کاربری انتخابگر ویجت ببینید:

    widget_picker

    شکل 4: رابط کاربری انتخابگر ویجت برای افزودن ویجت مکالمه جدید

  2. هنگام ارسال اعلان‌ها از مکالمه انتخابی به دستگاه، ویجت به‌روزرسانی می‌شود تا آن اعلان‌ها را منعکس کند.

  3. هنگام اعمال وضعیت ها برای آن مکالمه با استفاده از ConversationStatus API، ویجت آن وضعیت ها را منعکس می کند.

  4. کاربران می‌توانند اندازه ویجت‌ها را تغییر دهند و ویجت‌ها می‌توانند اندازه آنها را بر اساس راه‌انداز فعلی خود تغییر دهند. طرح بندی ویجت شما باید با اندازه های مختلف لانچر در دستگاه های مختلف و تغییر اندازه ویجت به خوبی کار کند.

برای تأیید اعتبار پیاده سازی، از تست های زیر در بسته اعلان استفاده کنید:

  • تست های CTS (PeopleManagerTest) برای سطوح API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • تست های دستی برای الزامات GMS - مکالمات.