การแจ้งเตือนการสนทนาและวิดเจ็ต

Android 11 เพิ่มการรองรับการปรับแต่งลักษณะการทำงานและการจัดวางการแจ้งเตือนการสนทนาบนหน้าต่างแจ้งเตือนตามลำดับความสำคัญและระดับการแจ้งเตือน ทำให้สามารถทำเครื่องหมายการสนทนาว่าสำคัญ และเปิด ลูกโป่ง การสนทนาเฉพาะในพื้นที่การสนทนา

Android 12 สร้างขึ้นจากคุณลักษณะ Android 11 เหล่านี้ มีคุณลักษณะการสนทนาใหม่สองคุณลักษณะ:

  • คุณลักษณะการสนทนาล่าสุดในการตั้งค่าทำให้ผู้ใช้สามารถกำหนดพฤติกรรมการแจ้งเตือนสำหรับการสนทนาล่าสุดโดยไม่ต้องรอการแจ้งเตือน

  • ฟีเจอร์ Conversation Widget ช่วยให้ผู้ใช้สามารถเปิดการแชทบนหน้าจอหลักได้อย่างง่ายดาย ทำให้สามารถดูการสนทนาล่าสุดได้อย่างรวดเร็ว

เอกสารนี้อธิบายการใช้งาน การปรับแต่ง และการตรวจสอบความถูกต้องของการแจ้งเตือนการสนทนาและวิดเจ็ต

ภาพรวมการแจ้งเตือนการสนทนา

Android 11 แนะนำระบบดั้งเดิมแบบใหม่ นั่นคือ Conversation ซึ่งแสดงโดย อ็อบเจ็กต์ทางลัดการแชร์ ที่มีอยู่ (ซึ่งเปิดตัวพร้อมกับ Android 9)

สามารถใช้ Conversations primitive ได้ดังนี้:

  • เพื่อแชร์ข้อมูลการสนทนาระหว่างแอปต่างๆ ทั่วทั้งระบบผ่าน Sharesheet (ใน Android 10 แล้ว)

  • สำหรับการขับ ฟองสบู่ ( ทางลัด ใน Android 11) ดู รูปภาพ 1

  • เพื่อเข้าร่วมในพื้นที่สนทนาใหม่ที่ด้านบนของหน้าต่างแจ้งเตือน (ใช้งานใน Android 11) ดู รูปภาพ 2

  • สำหรับสร้าง วิดเจ็ตการสนทนา (ใช้งานใน Android 12)

    conv_bubbles

    รูปที่ 1: การแจ้งเตือนที่เปิดตัวเป็นฟองอากาศจากลิ้นชักการแจ้งเตือน

    conv_notification

    รูปที่ 2: พื้นที่สนทนาที่ด้านบนของหน้าต่างแจ้งเตือน

นอกจากการลิงก์ไปยังทางลัดที่แสดงถึงการสนทนาแล้ว การแจ้งเตือนยังใช้ MessagingStyle เพื่อรวมข้อความสุดท้ายของการสนทนาในพื้นที่การสนทนาด้วย

พาร์ทเนอร์ GMS จะต้องดำเนินการดังต่อไปนี้:

  • พื้นที่การสนทนาใหม่เป็นส่วนแยกต่างหากที่ด้านบนของหน้าต่างแจ้งเตือน
  • รูปแบบการแจ้งเตือนที่อนุญาตและสนับสนุนรูปแบบลูกโป่งเฉพาะการสนทนา

พันธมิตรที่ใช้การสนทนาจะต้องดำเนินการสนทนาที่สำคัญเช่นกัน อย่างไรก็ตาม การใช้ Conversations สามารถสอดคล้องกับแนวคิด OEM ที่มีลักษณะคล้ายคลึงกัน โดยรวมแล้ว พันธมิตรมีอิสระในการจัดส่วนการสนทนาให้สอดคล้องกับ System UI เฉพาะของตน พันธมิตรไม่จำเป็นต้องแก้ไขหรือใช้ 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/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • การทดสอบ CTS Verifier

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

ภาพรวมวิดเจ็ตการสนทนา

ใน Android 12 ฟีเจอร์ Conversation Widget สร้างขึ้นจากการแทน Conversation ที่สร้างขึ้นใน Android 11 (ตามที่อธิบายในหัวข้อก่อนหน้า) โดยอนุญาตให้แอปแสดงสถานะสำหรับการสนทนาเหล่านั้นซึ่งแสดงใน Widgets การสนทนา

conv_widgets

รูปที่ 3: การสนทนาที่แสดงใน Conversation Widgets

ฟีเจอร์ Conversation Widget ใน Android 12 ส่งเสริมการเชื่อมต่อโดยอนุญาตให้ผู้ใช้เปิดแชทบนหน้าจอหลักได้อย่างง่ายดาย วิดเจ็ตเป็นทางลัดที่ได้รับการปรับปรุงซึ่งให้ผู้ใช้กลับมาที่การสนทนาได้อย่างมีประสิทธิภาพในขณะที่แสดงตัวอย่างสถานะการสนทนา

พันธมิตรต้องดำเนินการดังต่อไปนี้:

  1. วิดเจ็ตที่จัดทำโดย SystemUI
  2. ขั้นตอนการเพิ่มวิดเจ็ตเหล่านี้จากหน้าจอการเลือกวิดเจ็ต
  3. รองรับการปรับขนาดวิดเจ็ตดังนี้:
    • ใช้ onAppWidgetOptionsChanged() เพื่อเปลี่ยนเลย์เอาต์เป็นเลย์เอาต์ที่มีขนาดดีกว่าเมื่อผู้ใช้เปลี่ยนขนาดเลย์เอาต์หรือหมุนเป็นแนวนอน
    • ใช้ maxResizeHeight , maxResizeWidth , minWidth , minHeight , minResizeWidth , minResizeHeight เพื่อผูกการเปลี่ยนแปลงขนาดวิดเจ็ตของคุณอย่างถูกต้อง

ระวังการพึ่งพาต่อไปนี้เมื่อใช้งาน Conversation Widgets:

  • พันธมิตรไม่จำเป็นต้องแก้ไขหรือใช้รหัส HAL/ไดรเวอร์/เคอร์เนล
  • API สถานะ ซึ่งอนุญาตให้แอปเพิ่มข้อมูลสถานะหรือความพร้อมใช้งานในการสนทนาและวิดเจ็ตที่เกี่ยวข้อง ใช้สำหรับการใช้งาน
  • กระบวนการนี้เหมือนกันทั้งในการใช้งานอุปกรณ์ใหม่และการใช้งานอัปเกรด
  • คุณลักษณะ Conversation Widgets มีการพึ่งพาคุณลักษณะใหม่ที่เปิดตัวใน Android 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 คุณสามารถเพิ่ม Conversation Widget ใหม่สำหรับการสนทนาผ่านตัวเลือกวิดเจ็ตได้ ดูรูปที่ 4 สำหรับ UI ตัวเลือกวิดเจ็ต:

    widget_picker

    รูปที่ 4: Widget picker UI เพื่อเพิ่ม Conversation Widget

  2. ในการส่งการแจ้งเตือนไปยังอุปกรณ์จากการสนทนาที่เลือก วิดเจ็ตจะได้รับการอัปเดตเพื่อแสดงการแจ้งเตือนเหล่านั้น

  3. ในการใช้สถานะกับการสนทนานั้นโดยใช้ ConversationStatus API วิดเจ็ตจะแสดงสถานะเหล่านั้น

  4. ผู้ใช้สามารถปรับขนาดวิดเจ็ตและวิดเจ็ตสามารถเปลี่ยนขนาดตาม Launcher ปัจจุบันได้ เลย์เอาต์วิดเจ็ตของคุณต้องทำงานได้ดีกับ Launcher ขนาดต่างๆ กันบนอุปกรณ์ต่างๆ และในการปรับขนาดวิดเจ็ต

ในการตรวจสอบการใช้งาน ให้ใช้การทดสอบต่อไปนี้ในแพ็คเกจการแจ้งเตือน:

  • การทดสอบ CTS (PeopleManagerTest) สำหรับพื้นผิว API

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • การทดสอบข้อกำหนด GMS ด้วยตนเอง - การสนทนา