โครงการริเริ่มเรื่องผู้คนและการสนทนาเป็นโครงการริเริ่มหลายปีของ Android ที่มุ่งยกระดับผู้คนและการสนทนาในส่วนต่างๆ ของระบบในโทรศัพท์ การให้ความสำคัญนี้อิงตามข้อเท็จจริงที่ว่าการสื่อสารและการโต้ตอบกับผู้อื่นยังคงเป็นฟังก์ชันที่ผู้ใช้ส่วนใหญ่ของเราให้ความสำคัญและเห็นว่าสำคัญที่สุดในทุกกลุ่มประชากร
เราได้เปิดตัวฟีเจอร์ต่างๆ มากมายใน Android 11 เพื่อรองรับโครงการริเริ่มเรื่องผู้คนและการสนทนา
พื้นที่การสนทนา
ในอุปกรณ์แบบมือถือ จะมีส่วนแยกต่างหากที่ด้านบนของแผงการแจ้งเตือนซึ่งมีการสนทนาแบบเรียลไทม์กับผู้คนเท่านั้น (เช่น การโทรและข้อความแชท รวมถึงแชทกลุ่ม) การแจ้งเตือนในพื้นที่นี้จะมีลักษณะและการทำงานแตกต่างจากการแจ้งเตือนที่ไม่ใช่การสนทนาในโทรศัพท์หลายๆ รุ่น
- การออกแบบแตกต่างออกไป โดยเน้นที่อวตารที่แสดงถึงผู้คนร่วมกับแอปที่ใช้ในการสนทนา
- การแตะการแจ้งเตือนจะเปิด การสนทนาในแอป (หรือ บับเบิล หากก่อนหน้านี้การสนทนาเป็นบับเบิล) และการแตะเครื่องหมายแคร์เร็ตจะขยายข้อความใหม่ในแผงการแจ้งเตือนให้มีความยาวเต็ม พร้อมรายการตัวเลือกทั้งหมด
- มีการดำเนินการเฉพาะการสนทนา (บางรายการต้องกดค้าง) ดังนี้
- ทำเครื่องหมายการสนทนานี้ว่าสำคัญ
- เลื่อนระดับการสนทนานี้เป็นบับเบิล (แสดงเฉพาะในกรณีที่แอปรองรับบับเบิล)
- ปิดเสียงการแจ้งเตือนสำหรับการสนทนานี้
- ตั้งค่าเสียงหรือการสั่นที่กำหนดเองสำหรับการสนทนานี้
การสนทนาในบับเบิล
ตั้งแต่ Android 11 เป็นต้นไป บับเบิล สามารถ เริ่มจากการแจ้งเตือนในส่วนการสนทนาได้ เฉพาะการแจ้งเตือนที่มีทางลัดที่เชื่อมโยงเท่านั้นที่จะสามารถเป็นบับเบิลได้ การสนทนาจะเป็นบับเบิลโดยอัตโนมัติหากมีการทำเครื่องหมายว่าสำคัญหรือมีการทริกเกอร์ให้เป็นบับเบิลในแผงการแจ้งเตือน
ทางลัดการสนทนา
ทางลัดไปยังการสนทนาจะปรากฏใน Launcher และข้าง ทางลัดการแชร์ที่แสดงอยู่ตลอด, ในแผ่นแชร์
หลักเกณฑ์ของ API
ส่วนนี้อธิบาย API ที่ใช้เพิ่มการรองรับในแอปสำหรับพื้นที่ที่ระบบจัดเตรียมไว้ให้ซึ่งแสดงผู้คนและการสนทนา
ทางลัดสำหรับการสนทนา
หากต้องการเข้าร่วมโครงการริเริ่มที่เน้นการสนทนานี้ แอปต้อง ระบุทางลัดที่แสดงอยู่ตลอดให้ระบบ เราขอแนะนำอย่างยิ่งให้ใช้ทางลัดการแชร์ที่แสดงอยู่ตลอด หาก จำเป็น คุณสามารถใช้ ทางลัด แบบไดนามิกใน Android 11 ได้ แต่เราอาจนำตัวเลือกนี้ออกในอนาคต
หากต้องการเผยแพร่ทางลัดไปยัง
การสนทนา ให้เรียกใช้
ShortcutManagerCompat เมธอด
setDynamicShortcuts(),
addDynamicShortcuts(),
หรือ pushDynamicShortcut()
(ซึ่งจะจัดการขีดจำกัดทางลัดสำหรับนักพัฒนาแอปโดยอัตโนมัติ) ทางลัดนี้ต้องแสดงอยู่ตลอดและมีข้อมูลแนบอยู่สำหรับบุคคลอย่างน้อย 1 คน ซึ่งระบุผู้เข้าร่วมคนอื่นๆ ในการสนทนาPerson นอกจากนี้ เรายังแนะนำให้คุณตั้งค่า LocusIdCompat ด้วย
หากการสนทนาไม่มีอยู่อีกต่อไป แอปสามารถลบทางลัดด้วย
removeLongLivedShortcuts();
ซึ่งจะทำให้ระบบลบข้อมูลทั้งหมดที่เชื่อมโยงกับการสนทนา
แม้ว่าทางลัดจะนำออกได้ แต่แอปไม่ควรนำทางลัดที่แคชไว้ออก
เว้นแต่จะจำเป็นจริงๆ โดยระบบอาจแคชทางลัดไว้เนื่องจากผู้ใช้
โต้ตอบกับทางลัดเพื่อเปลี่ยนประสบการณ์การใช้งาน และการนำทางลัดออกจะ
ยกเลิกการเปลี่ยนแปลงเหล่านั้น ซึ่งอาจทำให้ผู้ใช้ไม่พอใจ
การแจ้งเตือนการสนทนา
การแจ้งเตือนจะถือเป็นการแจ้งเตือนการสนทนาหากเป็นไปตามเงื่อนไขต่อไปนี้
การแจ้งเตือนใช้
MessagingStyle(เฉพาะในกรณีที่แอปกำหนดเป้าหมายเป็น Android 11 ขึ้นไป) การ แจ้งเตือนเชื่อมโยงกับทางลัดการแชร์แบบไดนามิกหรือแบบแคชที่แสดงอยู่ตลอดและถูกต้อง การแจ้งเตือนสามารถตั้งค่าการเชื่อมโยงนี้ได้โดยการเรียกใช้
setShortcutId()หรือsetShortcutInfo()หากแอปกำหนดเป้าหมายเป็น Android 10 ลงไป การแจ้งเตือนไม่จำเป็นต้อง เชื่อมโยงกับทางลัด ดังที่อธิบายไว้ใน ส่วนตัวเลือกการทำงานในกรณีที่เกิดข้อผิดพลาดผู้ใช้ไม่ได้ลดระดับการสนทนาจากส่วนการสนทนาผ่านการตั้งค่าช่องทางการแจ้งเตือน ณ เวลาที่โพสต์
ใช้ LocusIdCompat
ระบบอัจฉริยะในอุปกรณ์จะกำหนดการสนทนาที่ผู้ใช้มีแนวโน้มที่จะสนใจมากที่สุด สัญญาณที่สำคัญที่สุด ได้แก่ ความใหม่และ ความถี่ของเซสชันการสนทนาในการสนทนาแต่ละครั้ง ระบบจะทราบเกี่ยวกับการโต้ตอบกับการสนทนาจากทางลัด Launcher หรือภายในการแจ้งเตือนหากมีการติดแท็กอย่างถูกต้อง อย่างไรก็ตาม ระบบจะไม่ทราบเกี่ยวกับการสนทนาที่เกิดขึ้นในแอปทั้งหมด เว้นแต่จะมีการติดแท็กการโต้ตอบเหล่านั้นด้วย ดังนั้น เราขอแนะนำอย่างยิ่งให้คุณแนบ LocusIdCompat กับ
ทางลัด
และใส่คำอธิบายประกอบกิจกรรมในแอปหรือ Fragment ด้วย
LocusIdCompatที่เชื่อมโยง ใช้ LocusIdCompat เพื่อให้ระบบคำแนะนำจัดอันดับการสนทนาได้อย่างถูกต้อง และเพื่อให้ระบบแสดงเวลาที่ถูกต้องของการโต้ตอบล่าสุดของผู้ใช้ (รวมถึงการโต้ตอบในแอป) กับการสนทนา หากคุณใช้
setShortcutInfo()
เพื่อเชื่อมโยงการสนทนากับทางลัด ระบบการสนทนาจะแนบ LocusIdCompat ที่เหมาะสมโดยอัตโนมัติ
ข้อกำหนดของพื้นที่การสนทนาสำหรับแอปที่กำหนดเป้าหมายเป็น Android 10 ลงไป
หากแอปไม่ได้กำหนดเป้าหมายเป็น Android 11 ข้อความของแอปก็ยังคงปรากฏในพื้นที่การสนทนาได้ อย่างไรก็ตาม แอปยังคงต้องเป็นไปตามข้อกำหนดบางประการ ส่วนนี้อธิบายข้อกำหนดสำหรับแอปเหล่านั้นและลักษณะการทำงานในกรณีที่เกิดข้อผิดพลาดหากแอปไม่เป็นไปตามข้อกำหนด
ข้อกำหนดหลักสำหรับการเข้าร่วมในพื้นที่การรับส่งข้อความคือ แอปต้อง
ใช้ MessagingStyle
การแจ้งเตือน และการแจ้งเตือนต้องอ้างอิง
**ทางลัดที่แสดงอยู่ตลอด**จากการแจ้งเตือนที่เผยแพร่ ณ
เวลาที่โพสต์การแจ้งเตือน การแจ้งเตือนที่เป็นไปตามข้อกำหนดเหล่านี้จะปรากฏในพื้นที่การสนทนาโดยมีลักษณะการทำงานดังนี้
- การแจ้งเตือนจะแสดงในรูปแบบการสนทนา
- ปุ่มบับเบิล จะปรากฏขึ้นหากมีการติดตั้งใช้งาน
- ฟังก์ชัน เฉพาะการสนทนา จะปรากฏขึ้นแบบอินไลน์
หากการแจ้งเตือนไม่เป็นไปตามข้อกำหนดเหล่านี้ แพลตฟอร์มจะใช้ตัวเลือกการทำงานในกรณีที่เกิดข้อผิดพลาดเพื่อจัดรูปแบบการแจ้งเตือน หากการแจ้งเตือนเป็นไปตามข้อกำหนดของกรณีการทำงานในกรณีที่เกิดข้อผิดพลาดอย่างใดอย่างหนึ่ง การแจ้งเตือนจะปรากฏในพื้นที่การสนทนาโดยมีการจัดรูปแบบพิเศษ หากการแจ้งเตือนไม่เป็นไปตามข้อกำหนดของตัวเลือกการทำงานในกรณีที่เกิดข้อผิดพลาดอย่างใดอย่างหนึ่ง การแจ้งเตือนจะไม่ปรากฏในพื้นที่การสนทนา
การทำงานในกรณีที่เกิดข้อผิดพลาด: หากใช้ MessagingStyle แต่ไม่มีทางลัด
หากแอปกำหนดเป้าหมายเป็น Android 10 ลงไปและการแจ้งเตือนใช้
MessagingStyle
แต่ ไม่ได้เชื่อมโยงข้อความกับการแจ้งเตือนทางลัด การแจ้งเตือน
จะแสดงในพื้นที่การสนทนาโดยมีลักษณะการทำงานดังนี้
- การแจ้งเตือนจะแสดงในรูปแบบการสนทนา
- ไม่มีปุ่มบับเบิล
- ไม่มีฟังก์ชันเฉพาะการสนทนา ปรากฏขึ้นแบบอินไลน์
การทำงานในกรณีที่เกิดข้อผิดพลาด: หากไม่ได้ใช้ MessagingStyle แต่แอปเป็นแอปรับส่งข้อความที่ระบบรู้จัก
หากการแจ้งเตือนไม่ได้ใช้
MessagingStyle
แต่แพลตฟอร์มรู้จักแอปเป็นแอปรับส่งข้อความ และตั้งค่าพารามิเตอร์
category
ของการแจ้งเตือนเป็น
msg,
การแจ้งเตือนจะแสดงในพื้นที่การสนทนาโดยมีลักษณะการทำงานดังนี้
- การแจ้งเตือนจะแสดงในรูปแบบเก่าก่อน Android 11
- ไม่มีปุ่มบับเบิล
- ไม่มีฟังก์ชันเฉพาะการสนทนา ปรากฏขึ้นแบบอินไลน์
คำแนะนำ การใช้งาน และการทดสอบ
ส่วนนี้ให้คำแนะนำทั่วไปเกี่ยวกับวิธีใช้และทดสอบฟีเจอร์การสนทนา
ฉันควรใช้การสนทนาเมื่อใด
การแจ้งเตือนการสนทนาและทางลัดที่เกี่ยวข้องมีไว้เพื่อปรับปรุงประสบการณ์การใช้งานของผู้ใช้ในการสนทนาแบบเรียลไทม์ ตัวอย่างเช่น SMS, แชทข้อความ และการโทรเป็นรูปแบบการสนทนาแบบเรียลไทม์ที่ผู้ใช้คาดหวังว่าจะสื่อสารได้อย่างรวดเร็ว ผู้ใช้ไม่ได้คาดหวังเช่นนั้นกับอีเมลและกิจกรรมที่ไม่เกี่ยวข้องกับการสนทนา
เราได้ให้ความสามารถแก่ผู้ใช้ในการนำการสนทนาที่ต้องการออกจากส่วนการสนทนาหากผู้ใช้รู้สึกว่าการสนทนานั้นไม่เหมาะสม
แนวทางปฏิบัติแนะนำ
เราขอแนะนำแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อเพิ่มการมีส่วนร่วมและช่วยให้ผู้ใช้โต้ตอบกับผู้คนและการสนทนาในแอปของคุณได้ง่ายขึ้น
- หากต้องการให้สายที่ไม่ได้รับปรากฏในการสนทนาสำคัญที่จัดลำดับความสำคัญ และปรากฏอย่างถูกต้องใน วิดเจ็ต Conversion ให้จัดรูปแบบการแจ้งเตือนสายที่ไม่ได้รับ เป็น
conversationsโดยตั้งค่าหมวดหมู่เป็นCATEGORY_MISSED_CALL - ระบุอวตารคุณภาพสูง (104dp) สำหรับผู้ใช้ มิเช่นนั้นระบบจะใช้อักษรย่อของชื่อบุคคล ซึ่งอาจทำให้ผู้ใช้มีส่วนร่วมน้อยลง
- อย่า
cancelการแจ้งเตือนการสนทนา ก่อนที่ผู้ใช้จะเห็นข้อความ ตัวอย่างเช่น การยกเลิกการแจ้งเตือนเมื่อเปิดแอปในมุมมองที่ผู้ใช้ไม่เห็นหรือจัดการข้อความไม่ได้ หากผู้ใช้ไม่มีโอกาสอ่านหรือจัดการข้อความ ระบบจะนำการแจ้งเตือนที่ยกเลิกและบับเบิลที่เชื่อมโยงออก ซึ่งจะทำให้บริบทการสนทนาหายไป - ระบุ
dataURI สำหรับข้อมูลเมตาที่เกี่ยวข้องกับ MIME ที่เชื่อมโยงกับข้อความ ซึ่งจะช่วยให้คุณมี ตัวเลือกในการมอบประสบการณ์การใช้งานที่สมบูรณ์ยิ่งขึ้นในการแจ้งเตือน - ใช้
Android 12 statusAPI เพื่อทำให้ วิดเจ็ตการสนทนา น่าสนใจยิ่งขึ้น - ใช้แนวทางปฏิบัติแนะนำต่อไปนี้สำหรับ
ทางลัดการสนทนา
- เผยแพร่ทางลัดสำหรับการสนทนาในแอปทั้งขาเข้าและขาออกที่ไม่ได้ส่งการแจ้งเตือนแบบ Push ข้อความขาเข้าและขาออกสำหรับการสนทนาเดียวกันควรมีรหัสทางลัดเดียวกัน ใช้
pushDynamicShortcut()เพื่อเผยแพร่ทางลัดและรายงานการใช้งาน - ระบุ
AdaptiveIconDrawableสำหรับไอคอนของทางลัดเพื่อหลีกเลี่ยงการตัดอวตารของทางลัดโดยไม่ตั้งใจ ดูรายละเอียดเพิ่มเติมได้ที่การระบุรูปภาพทางลัด - ทำตาม หลักเกณฑ์สำหรับการจัดอันดับที่ดีที่สุดเพื่อช่วยให้ระบบโปรโมตทางลัดของคุณ ระบบจะจัดอันดับทางลัดของคุณในส่วนต่างๆ ของระบบ รวมถึงแผ่นแชร์ของ Android หากเป็นทางลัดการแชร์
- ตรวจสอบว่าทางลัดการสนทนา
intentsเปิดการสนทนาที่เกี่ยวข้องโดยตรง - ใช้ไลบรารี Compat เพื่อตั้งค่าทางลัดเป็นทางลัดที่เกี่ยวข้องกับ
conversationได้อย่างสะดวก
- เผยแพร่ทางลัดสำหรับการสนทนาในแอปทั้งขาเข้าและขาออกที่ไม่ได้ส่งการแจ้งเตือนแบบ Push ข้อความขาเข้าและขาออกสำหรับการสนทนาเดียวกันควรมีรหัสทางลัดเดียวกัน ใช้
การทดสอบการแจ้งเตือนการสนทนาและทางลัด
หากคุณทำตามหลักเกณฑ์ของพื้นที่การสนทนา การสนทนาควรปรากฏในพื้นที่การสนทนา โดยอัตโนมัติ คุณสามารถยืนยันว่ามีการผสานรวมทางลัดอย่างถูกต้องโดยกดการแจ้งเตือนค้างไว้ หากผสานรวมอย่างถูกต้อง UI จะแสดงการดำเนินการที่เกี่ยวข้องกับการสนทนา หากการแจ้งเตือนไม่ได้ลิงก์กับทางลัด UI จะแสดงข้อความระบุว่าแอปไม่รองรับฟีเจอร์การสนทนา
ทางลัดที่เพิ่มจะแสดงเมื่อกดตัวเปิดแอปค้างไว้ โปรดทดสอบว่าทางลัดจะนำคุณไปยังตำแหน่งที่ถูกต้องภายในแอป
ทางลัดการแชร์ที่เพิ่ม จะแสดงในแถวการแชร์โดยตรงของแผ่นแชร์เมื่อแชร์เนื้อหาที่ ทางลัดการแชร์รับได้
วิดเจ็ตการสนทนา
ใน Android 12 ฟีเจอร์วิดเจ็ตการสนทนาสร้างขึ้นจากฟีเจอร์ผู้คนและ การสนทนาที่เปิดตัวใน Android 11 โดยอนุญาตให้แอปแสดงสถานะการสนทนาในวิดเจ็ตการสนทนา
วิดเจ็ตการสนทนาช่วยส่งเสริมการโต้ตอบของผู้ใช้โดยอนุญาตให้ผู้ใช้เปิดแชทในหน้าจอหลักได้อย่างง่ายดาย วิดเจ็ตเหล่านี้เป็นทางลัดที่ได้รับการปรับปรุงซึ่งช่วยให้ผู้ใช้กลับไปดูการสนทนาได้อย่างมีประสิทธิภาพ พร้อมแสดงข้อมูลสรุปสถานะการสนทนาหรือข้อมูลอื่นๆ ที่เกี่ยวข้อง
ตรวจสอบว่าแอปของคุณรองรับวิดเจ็ตการสนทนา
หากต้องการตรวจสอบว่าแอปของคุณรองรับวิดเจ็ตการสนทนา คุณต้องมีอุปกรณ์ Android อย่างน้อย 2 เครื่อง (ทั้ง 2 เครื่องใช้ Android 12) และบัญชีผู้ใช้ 2 บัญชี (บัญชีละ 1 เครื่อง) เพื่อแลกเปลี่ยนข้อความ สำหรับขั้นตอนการดำเนินการนี้ เราจะเรียกบัญชีว่า "ผู้ใช้ ก" และ "ผู้ใช้ ข"
ทำตามขั้นตอนต่อไปนี้ให้ครบถ้วน
- ในอุปกรณ์ของผู้ใช้ ก ให้กดตัวเปิดแอปค้างไว้ ในตัวเลือกวิดเจ็ต ให้แตะวิดเจ็ตใหม่สำหรับการสนทนาตามที่แสดงในรูปที่ 2
- ลากวิดเจ็ตไปยังหน้าจอหลัก คุณควรเลือกรายการการสนทนาที่ใช้งานอยู่หรือการสนทนาล่าสุดจากแอปของผู้ใช้ ก ได้
- ตอนนี้ในอุปกรณ์ของผู้ใช้ ข ให้ส่งข้อความทดสอบไปยังผู้ใช้ ก
- กลับไปที่อุปกรณ์ของผู้ใช้ ก แล้วตรวจสอบว่าวิดเจ็ตได้รับการอัปเดตเพื่อแสดงการแจ้งเตือนข้อความจากผู้ใช้ ข
- ไม่บังคับ: ให้ทั้งผู้ใช้ ก และผู้ใช้ ข ตั้งค่าสถานะการสนทนาเป็นค่าสถานะต่างๆ เพื่อให้แน่ใจว่าวิดเจ็ตของผู้ใช้ทั้ง 2 คนแสดงค่าสถานะเหล่านั้นอย่างถูกต้อง ดูรายการค่าสถานะได้ที่ ConversationStatus