การควบคุมอุปกรณ์ช่วยฟัง
การควบคุมอุปกรณ์ช่วยฟังในการจับคู่ด่วนมีเป้าหมายเพื่อมอบการควบคุมการเข้าถึงที่ดีขึ้นสำหรับฟีเจอร์สำคัญของอุปกรณ์ช่วยฟังใน 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 |