การควบคุมอุปกรณ์ช่วยฟัง

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

ชื่อกลุ่มข้อความ ค่า
การควบคุมอุปกรณ์ช่วยฟัง 0x08

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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