โครงการริเริ่มเกี่ยวกับผู้คนและการสนทนาเป็นโครงการริเริ่มของ 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
กับทางลัด และกำกับเนื้อหากิจกรรมในแอปหรือข้อมูลโค้ดส่วนนั้นด้วย LocusIdCompat
ที่เชื่อมโยง ใช้ LocusIdCompat
เพื่อเปิดใช้ระบบการแนะนำในการจัดอันดับการสนทนาอย่างเหมาะสม และเพื่อเปิดใช้ระบบในการแสดงเวลาที่ถูกต้องของการโต้ตอบครั้งล่าสุดของผู้ใช้ (รวมถึงการโต้ตอบในแอป) กับการสนทนา หากคุณใช้ setShortcutInfo()
เพื่อเชื่อมโยงการสนทนากับทางลัด ระบบการสนทนาจะแนบ LocusIdCompat
ที่เหมาะสมให้โดยอัตโนมัติ
ข้อกำหนดของพื้นที่การสนทนาสำหรับแอปที่กำหนดเป้าหมายเป็น Android 10 หรือต่ำกว่า
หากแอปไม่ได้กำหนดเป้าหมายเป็น Android 11 ข้อความของแอปจะยังคงแสดงในพื้นที่สนทนา อย่างไรก็ตาม แอปยังคงต้องเป็นไปตามข้อกำหนดบางอย่าง ส่วนนี้จะอธิบายข้อกำหนดสำหรับแอปเหล่านั้นและลักษณะการทำงานสำรองในกรณีที่แอปไม่เป็นไปตามข้อกำหนด
ข้อกำหนดหลักสำหรับการเข้าร่วมในพื้นที่รับส่งข้อความคือ แอปต้องใช้การแจ้งเตือน MessagingStyle
และการแจ้งเตือนต้องอ้างอิงถึงทางลัดที่ใช้ได้นานจากการแจ้งเตือนที่เผยแพร่ ณ เวลาที่โพสต์การแจ้งเตือน การแจ้งเตือนที่เป็นไปตามข้อกำหนดเหล่านี้จะปรากฏในพื้นที่สนทนาโดยมีลักษณะการทำงานดังนี้
- การแจ้งเตือนจะแสดงในสไตล์การสนทนา
- มีปุ่ม Bubble หากติดตั้งใช้งาน
- ฟังก์ชัน เฉพาะการสนทนาจะแสดงในบรรทัด
หากการแจ้งเตือนไม่เป็นไปตามข้อกำหนดเหล่านี้ แพลตฟอร์มจะใช้ตัวเลือกสำรองเพื่อจัดรูปแบบการแจ้งเตือน หากการแจ้งเตือนตรงตามข้อกำหนดในกรณีที่เป็นกรณีสำรอง การแจ้งเตือนจะแสดงในพื้นที่การสนทนาด้วยการจัดรูปแบบพิเศษ หากการแจ้งเตือนไม่มีสิทธิ์ใช้ตัวเลือกสำรองใดๆ การแจ้งเตือนจะไม่แสดงในพื้นที่การสนทนา
สำรอง: หากมีการใช้ MessagingStyle แต่ไม่มีแป้นพิมพ์ลัด
หากแอปกำหนดเป้าหมายเป็น Android 10 หรือต่ำกว่า และการแจ้งเตือนใช้ MessagingStyle
แต่ไม่เชื่อมโยงข้อความกับทางลัด การแจ้งเตือนจะแสดงในพื้นที่การสนทนาโดยมีลักษณะการทำงานดังต่อไปนี้
- การแจ้งเตือนจะแสดงในสไตล์การสนทนา
- ไม่มีปุ่มฟองอากาศ
- ไม่มีฟังก์ชันเฉพาะการสนทนาในบรรทัด
สำรอง: หากไม่ได้ใช้ MessagingStyle แต่แอปเป็นแอปการรับส่งข้อความที่รู้จัก
หากการแจ้งเตือนไม่ได้ใช้ MessagingStyle
แต่แพลตฟอร์มจดจำแอปนั้นเป็นแอปรับส่งข้อความ และตั้งค่าพารามิเตอร์ของcategory
การแจ้งเตือนเป็น msg
การแจ้งเตือนจะแสดงในพื้นที่สนทนาโดยมีลักษณะการทำงานดังนี้
- การแจ้งเตือนแสดงในสไตล์เก่าก่อน Android 11
- ไม่มีปุ่มฟองอากาศ
- ไม่มีฟังก์ชันเฉพาะการสนทนาในบรรทัด
คำแนะนำ การใช้งาน และการทดสอบ
ส่วนนี้จะให้คำแนะนำทั่วไปเกี่ยวกับวิธีใช้และทดสอบฟีเจอร์การสนทนา
ฉันควรใช้การสนทนาเมื่อใด
การแจ้งเตือนการสนทนาและแป้นพิมพ์ลัดที่เกี่ยวข้องมีวัตถุประสงค์เพื่อปรับปรุงประสบการณ์ของผู้ใช้ในการใช้การสนทนาแบบเรียลไทม์ ตัวอย่างเช่น SMS, แชทข้อความ และการโทรเป็นการสนทนาแบบเรียลไทม์ที่ผู้ใช้ต้องการที่จะสื่อสารอย่างรวดเร็ว ผู้ใช้ไม่คาดหวังเช่นนั้นกับอีเมลและกิจกรรมที่ไม่เกี่ยวข้องกับการสนทนา
เราได้อนุญาตให้ผู้ใช้นำการสนทนาออกจากส่วนการสนทนาได้หากรู้สึกว่าการสนทนานั้นไม่อยู่ในส่วนที่เหมาะสม
แนวทางปฏิบัติแนะนำ
เราขอแนะนําแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อเพิ่มการมีส่วนร่วมและช่วยให้ผู้ใช้โต้ตอบกับผู้คนและบทสนทนาเกี่ยวกับแอปได้ง่ายขึ้น
- ตรวจสอบว่าการโทรที่ไม่ได้รับจะแสดงในเฉดสีการสนทนาที่สําคัญและปรากฏอย่างถูกต้องในวิดเจ็ต Conversion โดยจัดรูปแบบการแจ้งเตือนสายที่ไม่ได้รับเป็น
conversations
โดยตั้งค่าหมวดหมู่เป็นCATEGORY_MISSED_CALL
- จัดเตรียมอวาตาร์คุณภาพสูง (104dp) ให้กับผู้ใช้ มิฉะนั้นระบบจะใช้ชื่อย่อของผู้ใช้รายนั้น ซึ่งจะทำให้เกิดการมีส่วนร่วมน้อยกว่า
- อย่า
cancel
การแจ้งเตือนการสนทนาก่อนที่ผู้ใช้จะไม่เห็นข้อความ ตัวอย่างหนึ่งของกรณีนี้คือการยกเลิกการแจ้งเตือนเมื่อเปิดแอปในมุมมองที่ผู้ใช้มองไม่เห็นหรือจัดการกับข้อความไม่ได้ หากผู้ใช้ไม่ได้รับโอกาสในการอ่านหรือจัดการข้อความ ระบบจะนำการแจ้งเตือนที่ยกเลิกและฟองข้อความที่เกี่ยวข้องออก ซึ่งจะทำให้เสียบริบทการสนทนา - ระบุ
data
URI สำหรับข้อมูลเมตาที่เกี่ยวข้องกับ MIME ที่เชื่อมโยงกับข้อความ ซึ่งจะช่วยให้คุณมีตัวเลือกในการมอบประสบการณ์การใช้งานการแจ้งเตือนที่สมบูรณ์ยิ่งขึ้น - ใช้
Android 12 status
API เพื่อทำให้วิดเจ็ตการสนทนาน่าสนใจยิ่งขึ้น - ใช้แนวทางปฏิบัติแนะนำต่อไปนี้สำหรับทางลัดการสนทนา
- เผยแพร่ทางลัดสำหรับการสนทนาในแอปขาเข้าและขาออกที่ไม่ได้ส่งข้อความ Push ข้อความขาเข้าและขาออกสำหรับการสนทนาเดียวกันควรมีรหัสทางลัดเดียวกัน ใช้
pushDynamicShortcut()
เพื่อเผยแพร่แป้นพิมพ์ลัดและรายงานการใช้งาน - โปรดใส่
AdaptiveIconDrawable
สำหรับไอคอนของทางลัดเพื่อหลีกเลี่ยงการตัดรูปโปรไฟล์ของทางลัดโดยไม่ตั้งใจ ดูรายละเอียดเพิ่มเติมได้ที่การจัดหาภาพทางลัด - ทำตามหลักเกณฑ์สำหรับการได้อันดับที่ดีที่สุดเพื่อช่วยให้ระบบโปรโมตทางลัดของคุณ ทางลัดจะได้รับการจัดอันดับในแพลตฟอร์มต่างๆ ของระบบ รวมถึงในหน้าจอแชร์ของ Android หากเป็นทางลัดการแชร์
- ตรวจสอบว่าแป้นพิมพ์ลัดการสนทนา
intents
เปิดการสนทนาที่เกี่ยวข้องโดยตรง - ใช้ไลบรารี compat เพื่อตั้งค่าแป้นพิมพ์ลัดที่เกี่ยวข้องกับ
conversation
ได้อย่างสะดวก
- เผยแพร่ทางลัดสำหรับการสนทนาในแอปขาเข้าและขาออกที่ไม่ได้ส่งข้อความ Push ข้อความขาเข้าและขาออกสำหรับการสนทนาเดียวกันควรมีรหัสทางลัดเดียวกัน ใช้
การทดสอบการแจ้งเตือนการสนทนาและทางลัด
หากคุณทำตามหลักเกณฑ์ของพื้นที่การสนทนา การสนทนาควรปรากฏในพื้นที่การสนทนาโดยอัตโนมัติ คุณสามารถยืนยันว่าผสานรวมทางลัดอย่างถูกต้องแล้วโดยกดการแจ้งเตือนค้างไว้ หากผสานรวมอย่างถูกต้อง UI จะแสดงการดำเนินการที่เกี่ยวข้องกับการสนทนา หากการแจ้งเตือนไม่ได้ลิงก์กับแป้นพิมพ์ลัด UI จะแสดงข้อความระบุว่าแอปไม่รองรับฟีเจอร์การสนทนา
ทางลัดที่เพิ่มแล้วจะแสดงขึ้นเมื่อกดตัวเปิดแอปค้างไว้ อย่าลืมทดสอบว่าทางลัดนำคุณไปยังส่วนที่เหมาะสมภายในแอป
ทางลัดการแชร์ที่เพิ่มจะแสดงในแถวการแชร์โดยตรงของชีตการแชร์เมื่อแชร์เนื้อหาที่ทางลัดการแชร์รับได้
วิดเจ็ตการสนทนา
ใน Android 12 ฟีเจอร์วิดเจ็ตการสนทนาจะต่อยอดจากฟีเจอร์บุคคลและการสนทนาที่เปิดตัวใน Android 11 โดยอนุญาตให้แอปแสดงสถานะการสนทนาในวิดเจ็ตการสนทนา
วิดเจ็ตการสนทนาช่วยกระตุ้นการโต้ตอบของผู้ใช้ด้วยการอนุญาตให้ผู้ใช้เปิดแชทบนหน้าจอหลักได้อย่างง่ายดาย วิดเจ็ตเหล่านี้เป็นทางลัดที่ปรับปรุงใหม่ซึ่งช่วยให้ผู้ใช้กลับไปยังการสนทนาได้อย่างมีประสิทธิภาพ ในขณะเดียวกันก็แสดงตัวอย่างสถานะการสนทนาหรือข้อมูลที่เกี่ยวข้องอื่นๆ ด้วย
ตรวจสอบว่าแอปรองรับวิดเจ็ตการสนทนา
หากต้องการยืนยันว่าแอปของคุณรองรับวิดเจ็ตการสนทนา คุณต้องมีอุปกรณ์ Android อย่างน้อย 2 เครื่อง (ทั้ง 2 เครื่องใช้ Android 12) และบัญชีผู้ใช้ 2 บัญชี (1 บัญชีในแต่ละอุปกรณ์) เพื่อแลกเปลี่ยนข้อความ เราจะเรียกบัญชีเหล่านี้ว่า "ผู้ใช้ ก" และ "ผู้ใช้ ข" เพื่อใช้ในขั้นตอนนี้
ทำตามขั้นตอนต่อไปนี้ให้เสร็จ
- บนอุปกรณ์ของผู้ใช้ ก ให้กดตัวเปิดแอปค้างไว้ ในเครื่องมือเลือกวิดเจ็ต ให้แตะวิดเจ็ตใหม่สำหรับการสนทนาดังที่แสดงในรูปที่ 2
- ลากวิดเจ็ตไปที่หน้าจอหลัก คุณควรเลือกรายการการสนทนาที่ใช้งานอยู่หรือล่าสุดจากแอปของผู้ใช้ ก. ได้
- ตอนนี้ให้ส่งข้อความทดสอบไปยังผู้ใช้ ก. ในอุปกรณ์ของผู้ใช้ ข.
- กลับไปที่อุปกรณ์ของผู้ใช้ ก ให้ตรวจสอบว่าวิดเจ็ตอัปเดตเพื่อแสดงการแจ้งเตือนข้อความจากผู้ใช้ ข แล้ว
- ไม่บังคับ: ให้ทั้งผู้ใช้ ก และผู้ใช้ ข ตั้งค่าการสนทนาเป็นค่าสถานะที่แตกต่างกันเพื่อให้วิดเจ็ตแสดงค่าดังกล่าวอย่างถูกต้อง ดูรายการค่าสถานะได้ที่ ConversationStatus