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