اعلان‌ها و ابزارک‌های مکالمه

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

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

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

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

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

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

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

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

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

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

  • برای شرکت در فضای مکالمه جدید در بالای صفحه Notification (که در اندروید 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 - مکالمات.