Android 11 เพิ่มการรองรับการปรับแต่งลักษณะการทำงานและการจัดวางการแจ้งเตือนการสนทนาบนหน้าต่างแจ้งเตือนตามลำดับความสำคัญและระดับการแจ้งเตือน ทำให้สามารถทำเครื่องหมายการสนทนาว่าสำคัญ และเปิด ลูกโป่ง การสนทนาเฉพาะในพื้นที่การสนทนา
Android 12 สร้างขึ้นจากคุณลักษณะ Android 11 เหล่านี้ มีคุณลักษณะการสนทนาใหม่สองคุณลักษณะ:
คุณลักษณะการสนทนาล่าสุดในการตั้งค่าทำให้ผู้ใช้สามารถกำหนดพฤติกรรมการแจ้งเตือนสำหรับการสนทนาล่าสุดโดยไม่ต้องรอการแจ้งเตือน
ฟีเจอร์ Conversation Widget ช่วยให้ผู้ใช้สามารถเปิดการแชทบนหน้าจอหลักได้อย่างง่ายดาย ทำให้สามารถดูการสนทนาล่าสุดได้อย่างรวดเร็ว
เอกสารนี้อธิบายการใช้งาน การปรับแต่ง และการตรวจสอบความถูกต้องของการแจ้งเตือนการสนทนาและวิดเจ็ต
ภาพรวมการแจ้งเตือนการสนทนา
Android 11 แนะนำระบบดั้งเดิมแบบใหม่ นั่นคือ Conversation ซึ่งแสดงโดย อ็อบเจ็กต์ทางลัดการแชร์ ที่มีอยู่ (ซึ่งเปิดตัวพร้อมกับ Android 9)
สามารถใช้ Conversations primitive ได้ดังนี้:
เพื่อแชร์ข้อมูลการสนทนาระหว่างแอปต่างๆ ทั่วทั้งระบบผ่าน Sharesheet (ใน Android 10 แล้ว)
เพื่อเข้าร่วมในพื้นที่สนทนาใหม่ที่ด้านบนของหน้าต่างแจ้งเตือน (ใช้งานใน Android 11) ดู รูปภาพ 2
สำหรับสร้าง วิดเจ็ตการสนทนา (ใช้งานใน Android 12)
รูปที่ 1: การแจ้งเตือนที่เปิดตัวเป็นฟองอากาศจากลิ้นชักการแจ้งเตือน
รูปที่ 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/
การตรวจสอบความถูกต้อง
เพื่อให้แน่ใจว่าเวอร์ชันของฟีเจอร์ทำงานตามที่ตั้งใจไว้ ให้ตรวจสอบสิ่งต่อไปนี้:
แอปที่รองรับ Conversation API อย่างสมบูรณ์จะดูการแจ้งเตือนในส่วนใหม่ และปรับแต่งการแจ้งเตือนเหล่านั้นด้วยการสนทนา แทนที่จะดูจาก NotificationChannel ทั่วไป
ฟองอากาศเฉพาะการสนทนากำลังทำงานอยู่
ในการตรวจสอบการใช้งาน ให้ใช้การทดสอบต่อไปนี้ในแพ็คเกจการแจ้งเตือน:
การทดสอบซีทีเอส
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 การสนทนา
รูปที่ 3: การสนทนาที่แสดงใน Conversation Widgets
ฟีเจอร์ Conversation Widget ใน Android 12 ส่งเสริมการเชื่อมต่อโดยอนุญาตให้ผู้ใช้เปิดแชทบนหน้าจอหลักได้อย่างง่ายดาย วิดเจ็ตเป็นทางลัดที่ได้รับการปรับปรุงซึ่งให้ผู้ใช้กลับมาที่การสนทนาได้อย่างมีประสิทธิภาพในขณะที่แสดงตัวอย่างสถานะการสนทนา
พันธมิตรต้องดำเนินการดังต่อไปนี้:
- วิดเจ็ตที่จัดทำโดย SystemUI
- ขั้นตอนการเพิ่มวิดเจ็ตเหล่านี้จากหน้าจอการเลือกวิดเจ็ต
- รองรับการปรับขนาดวิดเจ็ตดังนี้:
- ใช้
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
การตรวจสอบความถูกต้อง
เพื่อให้แน่ใจว่าเวอร์ชันของฟีเจอร์ทำงานตามที่ตั้งใจไว้ ให้ตรวจสอบสิ่งต่อไปนี้:
เมื่อกดค้างที่ Launcher คุณสามารถเพิ่ม Conversation Widget ใหม่สำหรับการสนทนาผ่านตัวเลือกวิดเจ็ตได้ ดูรูปที่ 4 สำหรับ UI ตัวเลือกวิดเจ็ต:
รูปที่ 4: Widget picker UI เพื่อเพิ่ม Conversation Widget
ในการส่งการแจ้งเตือนไปยังอุปกรณ์จากการสนทนาที่เลือก วิดเจ็ตจะได้รับการอัปเดตเพื่อแสดงการแจ้งเตือนเหล่านั้น
ในการใช้สถานะกับการสนทนานั้นโดยใช้
ConversationStatus
API วิดเจ็ตจะแสดงสถานะเหล่านั้นผู้ใช้สามารถปรับขนาดวิดเจ็ตและวิดเจ็ตสามารถเปลี่ยนขนาดตาม Launcher ปัจจุบันได้ เลย์เอาต์วิดเจ็ตของคุณต้องทำงานได้ดีกับ Launcher ขนาดต่างๆ กันบนอุปกรณ์ต่างๆ และในการปรับขนาดวิดเจ็ต
ในการตรวจสอบการใช้งาน ให้ใช้การทดสอบต่อไปนี้ในแพ็คเกจการแจ้งเตือน:
การทดสอบ CTS (PeopleManagerTest) สำหรับพื้นผิว API
cts/tests/app/src/android/app/cts/NotificationManagerTest.java
การทดสอบข้อกำหนด GMS ด้วยตนเอง - การสนทนา