การควบคุมอุปกรณ์แบบใส่หู

การควบคุมอุปกรณ์หูฟังในฟีเจอร์จับคู่ด่วนมีจุดประสงค์เพื่อมอบการควบคุมการเข้าถึงที่ดียิ่งขึ้นสำหรับฟีเจอร์ที่สำคัญของอุปกรณ์หูฟังใน Android เราได้เพิ่มการควบคุมกลุ่มข้อความใหม่ของ Hearable ไว้ในสตรีมข้อความเพื่อให้การดำเนินการนี้เป็นไปได้

ชื่อกลุ่มข้อความ ค่า
การควบคุมอุปกรณ์แบบได้ยินเสียง 0x08

การควบคุมเสียงรบกวนแบบแอ็กทีฟ

การควบคุมเสียงรบกวนแบบแอ็กทีฟกำลังกลายเป็นฟีเจอร์หลักสำหรับหูฟังระดับพรีเมียม ฝั่งผู้ค้นหา การจับคู่ด่วนจะมี UI และตรรกะในการตั้งค่า รับ และบันทึกสถานะ และสถานะจะจัดเก็บไว้ฝั่งผู้ให้บริการ ผู้ให้บริการต้องส่ง Session Nonce เมื่อเชื่อมต่อสตรีมเหตุการณ์ รหัสข้อความด้านล่างนี้กำหนดไว้เพื่อดำเนินการดังกล่าว

ชื่อรหัสข้อความ ค่า ผู้ส่ง ผู้ตอบ MAC ACK
รับสถานะ ANC 0x11 Seeker ผู้ให้บริการ N N
ตั้งค่าสถานะ ANC 0x12 Seeker ผู้ให้บริการ Y Y
แจ้งสถานะ ANC 0x13 ผู้ให้บริการ Seeker N N

เมื่อผู้ค้นหาเชื่อมต่อกับผู้ให้บริการ หรือเมื่อผู้ให้บริการได้รับข้อความ "รับสถานะ ANC" ผู้ให้บริการจะแจ้งสถานะ ANC เพื่อแจ้งให้ผู้ค้นหาทราบถึงความสามารถของ ANC และสถานะที่เก็บไว้ได้ ข้อความมีดังนี้

ไบต์ ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 การควบคุมอุปกรณ์แบบได้ยินเสียง 0x08
1 uint8 แจ้งสถานะ ANC 0x13
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0x04
4 - 7 ข้อมูลการควบคุม ANC แตกต่างกัน
ข้อมูลการควบคุม ANC
ไบต์ ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสรุ่น varies,0x02 สำหรับเวอร์ชันนี้
1 ธง ปุ่มเปิด/ปิด UI
โหมดแต่ละโหมดจะเปิดใช้ (1) หรือปิดใช้ (0) ตามค่าของบิต Flag ดังนี้
บิต 0 (MSB): โปร่งใส
บิต 1: สงวนไว้ (ตั้งค่าบิตเป็น 0)
บิต 2: ปิด
บิต 3: สงวนไว้ (ตั้งค่าบิตเป็น 0)
บิต 4: ANC
แตกต่างกัน
2 ธง ปุ่มเปิด/ปิดที่ตั้งค่าได้
คุณตั้งค่าปุ่มเปิด/ปิด UI รายการใดรายการหนึ่งหรือทั้งหมดข้างต้นได้ที่นี่เพื่อระบุว่าปุ่มใดเปิดใช้อยู่
แตกต่างกัน
3 ธง สถานะปัจจุบัน
สามารถตั้งค่าได้เพียง 1 บิต และค่าของไบต์นี้ต้องไม่เท่ากับ 0
แตกต่างกัน

ตัวค้นหาจะแสดง UI แบบเปิด/ปิดตามข้อมูลการควบคุม ANC

ตัวอย่างที่ 1: ผู้ให้บริการรองรับ ANC แบบ 3 ทาง ได้แก่ แบบโปร่งใส - ปิด - ANC และใส่หูฟังแล้ว ตอนนี้ตั้งค่าโหมดทั้งหมดได้แล้ว และสถานะปัจจุบันคือปิด

ไบต์ ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสรุ่น 0x01
1 ธง ปุ่มเปิด/ปิด UI 0b10101000
2 ธง ปุ่มเปิด/ปิดที่ตั้งค่าได้ 0b10101000
3 ธง สถานะปัจจุบัน 0b00100000

ตัวอย่างที่ 2: ผู้ให้บริการรองรับ ANC แบบ 3 ทาง ได้แก่ แบบโปร่งใส - ปิด - ANC มีหูฟังเอียร์บัดเพียงข้างเดียวอยู่ในหูหรือไม่มีหูฟังเอียร์บัดอยู่ในหู จึงไม่สามารถตั้งค่าโหมดได้ และสถานะปัจจุบันคือปิด

ไบต์ ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสรุ่น 0x01
1 ธง ปุ่มเปิด/ปิด UI 0b10101000
2 ธง ปุ่มเปิด/ปิดที่ตั้งค่าได้ 0b00000000
3 ธง สถานะปัจจุบัน 0b00100000

หากผู้ใช้สลับปุ่มเปิด/ปิด ผู้ค้นหาจะตั้งค่าสถานะปัจจุบันเป็นผู้ให้บริการดังนี้

ไบต์ ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 การควบคุมอุปกรณ์แบบได้ยินเสียง 0x08
1 uint8 ตั้งค่าสถานะ ANC 0x12
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม แตกต่างกัน 0x04 หรือ 0x14
4 uint8 รหัสเวอร์ชัน Seeker varies, 0x01 หรือ 0x02
5 ธง โหมด ANC ที่ตั้งค่าได้ (ปุ่มเปิด/ปิด UI) แตกต่างกัน
6 ธง โหมดที่เปิดใช้ ANC (ปุ่มสลับที่ตั้งค่าได้) แตกต่างกัน
7 ธง ดัชนีโหมด ANC ใหม่ (สถานะใหม่) แตกต่างกัน
8 - 23 จองแล้ว แตกต่างกัน

โดยไบต์ 4-7 คือข้อมูลการควบคุม ANC ที่ส่งจากฝั่งตัวค้นหา หากตั้งค่าความยาวเพิ่มเติมเป็น 0x14 จะมีไบต์ที่สงวนไว้ 8-23 ปรากฏอยู่ และผู้ให้บริการควรละเว้นไบต์เหล่านี้เมื่อได้รับ หากตั้งค่าความยาวเพิ่มเติมเป็น 0x04 จะไม่มีไบต์ที่สงวนไว้

เมื่อผู้ให้บริการได้รับข้อความ "ตั้งค่าสถานะ ANC" ผู้ให้บริการควรรับทราบ และแจ้งสถานะ ANC ไปยังผู้ค้นหาที่เชื่อมต่ออยู่ทั้งหมด หากผู้ใช้เปลี่ยนการตั้งค่าผ่านท่าทางสัมผัสของชุดหูฟังหรือแอปพลิเคชันที่ใช้ร่วมกัน ผู้ให้บริการควรส่งการแจ้งเตือนไปยังผู้ค้นหาที่เชื่อมต่ออยู่ทั้งหมดด้วย