สลับอุปกรณ์เสียง

เมื่อผู้ใช้ใช้อุปกรณ์แหล่งที่มาของเสียงหลายๆ เครื่องเพื่อทำสิ่งต่างๆ ในแต่ละวันกันมากขึ้น ผู้ใช้ก็ต้องการโซลูชันที่ง่ายขึ้นในการจัดการการใช้งานชุดหูฟังในอุปกรณ์ต่างๆ มากขึ้น การสลับอุปกรณ์เสียงจะเปลี่ยนการเชื่อมต่อชุดหูฟังระหว่างอุปกรณ์ต่างๆ ได้อย่างราบรื่นตามกิจกรรมของผู้ใช้ (เช่น การเริ่มต้นภาพยนตร์) และเหตุการณ์ที่จัดลำดับความสำคัญ (เช่น สายเรียกเข้า)

หลักการเกี่ยวกับ UX

  1. การเปลี่ยนการเชื่อมต่อควรเร็วและขึ้นอยู่กับการดำเนินการของผู้ใช้
  2. การสลับการเชื่อมต่อควรมีความโปร่งใสต่อผู้ใช้ ซึ่งช่วยให้ผู้ใช้ควบคุม/เปลี่ยนกลับได้ถ้าไม่เป็นที่ต้องการ
  3. การเปลี่ยนควรเคารพความเป็นส่วนตัวของผู้ใช้

บทบาท

เครื่องมือหาสวิตช์เสียง: เครื่องมือหาคืออุปกรณ์แหล่งที่มาของเสียง (เช่น โทรศัพท์หรือแท็บเล็ต) ซึ่งจะมองหาชุดหูฟังที่อยู่ใกล้ๆ เพื่อเชื่อมต่อด้วยหากทำได้

ผู้ให้บริการสลับสัญญาณเสียง: โดยปกติผู้ให้บริการจะเป็นชุดหูฟังที่โฆษณาการปรากฏและสถานะการเชื่อมต่อของตนให้ผู้ร้องขอตัดสินใจเปลี่ยน

ภาพรวมของข้อกำหนด

ผู้ให้บริการต้องปฏิบัติตามข้อกำหนดต่อไปนี้เพื่อให้เปลี่ยนไปใช้ฟีเจอร์อัจฉริยะได้

ชื่อ คำอธิบาย ข้อกำหนด จำเป็นหรือไม่
การสแกนหน้า หากต้องการยอมรับคำขอเชื่อมต่อใหม่จากผู้ส่งคำขอรายอื่นเมื่อมีการเชื่อมต่อที่มีอยู่แล้ว
สำหรับผู้ให้บริการแบบจุดเดียว:
  • อุปกรณ์ต้นทางเดิมจะหยุดเล่นเสียงชั่วคราวโดยอัตโนมัติเมื่อยกเลิกการเชื่อมต่อผู้ให้บริการ
สำหรับผู้ให้บริการแบบหลายจุด ให้ทำดังนี้
  • หากยังมีการเชื่อมต่อที่ใช้ได้ ระบบจะยอมรับคำขอเชื่อมต่อ
  • หากแบนด์วิดท์การเชื่อมต่อเต็ม ให้ยกเลิกการเชื่อมต่อการเชื่อมต่อที่ใช้งานล่าสุด (เช่น ไม่มีกิจกรรมเสียงเป็นเวลานาน) และยอมรับคำขอที่เข้ามาใหม่
จำเป็นต้องใช้โหมดสแกนหน้าที่มีเวลาในการตอบสนองต่ำ (ช่วงเวลาการสแกนไม่ควรมากกว่า 640 มิลลิวินาที) เพื่อปรับปรุงประสิทธิภาพ
เพื่อแลกกับอายุการใช้งานแบตเตอรี่และการสลับประสิทธิภาพ ผู้ให้บริการสามารถใช้โหมดสแกนหน้าเว็บเริ่มต้นในเกือบทุกกรณี (โหมดพลังงานต่ำ ช่วงเวลาการสแกนไม่ควรมากกว่า 1280 มิลลิวินาที) แต่จะต้องใช้โหมดเวลาในการตอบสนองต่ำในสถานการณ์ต่อไปนี้
  • เปิดเครื่อง 30 วินาทีแรก
  • 30 วินาทีแรกที่ไม่มีการเชื่อมต่อหรือการแบ่งหน้า
  • ไม่มีการใช้งานอุปกรณ์ใน 30 วินาทีแรก
จำเป็น
ประวัติการเชื่อมต่อ หากต้องการเปลี่ยนกลับไปใช้การเชื่อมต่อก่อนหน้าและเล่นต่อหากมี
การสื่อสารจะทริกเกอร์โดยการสื่อสารผ่าน Message Stream API
ควรรวมเหตุการณ์เสียงที่หยุดไว้ชั่วคราวไว้ในบันทึกด้วยเพื่อให้เล่นต่อได้ (หากมี)
รักษาประวัติการเชื่อมต่อและติดตั้งใช้งาน Message Stream API จำเป็น
สถานะการเชื่อมต่อ สำหรับผู้ร้องขอให้ดำเนินการสลับเปลี่ยนการเชื่อมต่อ สถานะการเชื่อมต่อประกอบด้วย:
  • สถานะการเชื่อมต่อ
  • ประเภทเสียงของการเชื่อมต่อที่ใช้งานอยู่
  • ข้อมูลบัญชีของการเชื่อมต่อที่ใช้งานอยู่
  • อุปกรณ์ที่เชื่อมต่อ
ใส่สถานะการเชื่อมต่อในโฆษณา BLE และสตรีมข้อความ จำเป็น
การเปลี่ยนแปลงความสามารถด้านรันไทม์ การสลับอุปกรณ์เสียงสามารถเปิดใช้ได้โดยการอัปเกรดเฟิร์มแวร์ของผู้ให้บริการ จึงต้องซิงค์ความสามารถระหว่างผู้หาและผู้ให้บริการระหว่างรันไทม์ ติดตั้งใช้งาน API ของ Message Stream เพื่อเข้าถึงความสามารถของรันไทม์ จำเป็น
กฎการเปลี่ยนที่กำหนดค่าได้ ให้ผู้ส่งคำขอกำหนดค่าลำดับความสำคัญระหว่างการสตรีมเสียงที่ใช้งานอยู่และคำขอสตรีมเสียงใหม่ผ่านการตั้งค่ากำหนดของผู้ใช้
ตัวอย่างเช่น ผู้ส่งคำขอการสลับเสียงอาจกำหนดการตั้งค่า UI เพื่ออนุญาตให้ผู้ใช้เปิด/ปิดใช้การสลับอัตโนมัติระหว่างการสตรีมสื่อและการโทรได้
ผู้ค้นหาการสลับแทร็กเสียงจะตั้งค่าและรับกฎการเปลี่ยนผ่านทางสตรีมข้อความ
ผู้ให้บริการแบบหลายรายเท่านั้น
ใช้ Message Stream API เพื่อให้กำหนดค่าการสลับระหว่างอุปกรณ์ที่เชื่อมต่อได้
ไม่บังคับ
การเปลี่ยนอุปกรณ์ที่ใช้งานอยู่ ให้ตัวค้นหาการสลับเสียงจำลองการสลับเสียงระหว่างอุปกรณ์ที่เชื่อมต่อ
ในด้านตัวค้นหาสวิตช์เสียง อาจมี UI เพื่อให้ผู้ใช้สลับระหว่างอุปกรณ์ที่เชื่อมต่อได้โดยง่าย
ผู้ให้บริการแบบหลายรายเท่านั้น
ใช้ API ของสตรีมข้อความสำหรับผู้ต้องการสลับสัญญาณเสียงเพื่อระบุแหล่งที่มาของเสียงที่ใช้งานอยู่ระหว่างอุปกรณ์ที่เชื่อมต่อ
จำเป็น
การแจ้งเตือนการเปลี่ยนโหมดหลายจุด ให้ผู้ค้นหาการสลับเสียงแสดงการแจ้งเตือนการเปลี่ยน ผู้ให้บริการแบบหลายรายเท่านั้น
ใช้งาน API ของสตรีมข้อความเพื่อแจ้งเตือนผู้ต้องการสลับอุปกรณ์เสียงที่เชื่อมต่ออยู่เมื่อมีการเปลี่ยนไปใช้สัญญาณหลายจุด
จำเป็น

เพย์โหลดการโฆษณา

ผู้ให้บริการจะต้องใส่สถานะการเชื่อมต่อปัจจุบันของตนในโฆษณา ซึ่งสร้างขึ้นจากข้อมูลบัญชีการจับคู่ด่วนที่อธิบายไว้ใน การโฆษณา: เมื่อไม่สามารถค้นพบได้

โปรดทราบว่าเวอร์ชันของตาราง 4.2 คือ 0x1

ช่องสถานะการเชื่อมต่อ

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า จำเป็นหรือไม่
0 uint8 ความยาวและประเภทของช่อง
0bLLLLTTTT
  • L = ความยาวของสถานะการเชื่อมต่อเป็นไบต์
  • T = ประเภท
0bLLLL0101
  • ความยาว: แตกต่างกันไป
  • type = 0b0101
จำเป็น
1 uint8 สถานะการเชื่อมต่อ
0bHAFRSSSS
  • H = บนการตรวจจับศีรษะ
  • A = ความพร้อมใช้งานของการเชื่อมต่อ
  • F = โหมดโฟกัส
  • R = เชื่อมต่อใหม่โดยอัตโนมัติ
  • S = สถานะการเชื่อมต่อ
0bHAFRSSSS
จำเป็น
2 uint8 ข้อมูลที่กำหนดเอง
ปัจจุบันมีเฉพาะประเภทเนื้อหาที่ใช้เพื่ออธิบายการใช้งานสตรีมมิงเสียงในปัจจุบัน โดยผู้ร้องขอจะส่งไปให้กับผู้ให้บริการ
ระบบจะส่งค่าจากผู้ร้องขอสตรีมมิงที่ใช้งานอยู่ปัจจุบันไปยังผู้ให้บริการผ่านสตรีมข้อความ 0 หากการสตรีมที่ใช้งานอยู่ในปัจจุบันไม่ได้มาจาก Seeker จำเป็น
3 - var บิตแมปของอุปกรณ์ที่เชื่อมต่อ
บิตแมปเพื่อแสดงว่าอุปกรณ์ใดเชื่อมต่ออยู่กับผู้ให้บริการในขณะนี้ อุปกรณ์ที่มีความสัมพันธ์กันทั้งหมดจัดเรียงอย่างเป็นระเบียบ โดยแบ่งเป็นบิตหนึ่งสำหรับอุปกรณ์ที่มีข้อผูกมัด 1 ชิ้น โดยความยาวจะขึ้นอยู่กับจำนวนอุปกรณ์ผูกมัดของผู้ให้บริการที่มีอยู่
หากบิตที่แมปไว้ โดยที่อุปกรณ์เชื่อมต่อกับผู้ให้บริการอยู่ จะเป็น 0 หากไม่ใช่
ดูรายละเอียดในบิตแมปของอุปกรณ์ที่เชื่อมต่อ
ไม่บังคับ

ตารางที่ 4.1: ข้อมูลดิบของช่องสถานะการเชื่อมต่อ

แฟล็กการเชื่อมต่อ
  • 0bH = การตรวจจับศีรษะ

    • 1 จัดไปนะ
    • 0 หากไม่ใช่ จะไม่อยู่บนศีรษะ หรือไม่มีเซ็นเซอร์ OHD
  • 0bA = ความพร้อมใช้งานของการเชื่อมต่อ

    • 1 มีการเชื่อมต่อที่ใช้งานได้
    • 0 หากไม่ใช่
  • 0bF = โหมดโฟกัส

    • 1. ในโหมดโฟกัสในตอนนี้ ไม่อนุญาตให้สลับการเชื่อมต่อสำหรับการใช้งานสื่อ กล่าวคือ ไม่มีการสลับ A2DP เป็น A2DP
    • 0 หากไม่ใช่
  • 0bR = เชื่อมต่อใหม่โดยอัตโนมัติ

    • 1 ถ้าผู้ให้บริการเชื่อมต่อการเชื่อมต่อปัจจุบันใหม่โดยอัตโนมัติ หมายความว่าผู้ใช้ไม่ได้เชื่อมต่อ (สำหรับการเชื่อมต่อหลายจุด หากผู้ให้บริการเชื่อมต่อที่มีอยู่เชื่อมต่อใหม่โดยอัตโนมัติ ควรตั้งค่าเป็น 1)
    • 0 หากไม่ใช่
สถานะการเชื่อมต่อ
  • 0x0: ไม่มีการเชื่อมต่อ
  • 0x1: การแบ่งหน้า
  • 0x2: เชื่อมต่อแล้วแต่ไม่มีการโอนข้อมูล
  • 0x3: การโอนข้อมูลที่ไม่ใช่เสียง (เมื่อสลับได้เฉพาะเมื่อไม่โอน ใช้ 0xF)
  • 0x4: การสตรีม A2DP, ไม่สามารถใช้ AVRCP
  • 0x5: การสตรีม A2DP และการเล่น AVRCP
  • 0x6: สตรีมมิง HFP (การโทร/สาย VoIP) รวมถึงเสียงเรียกเข้าแบบอินแบนด์และนอกวงดนตรี
  • 0x7: LE Audio - สตรีมสื่อแบบไม่มีตัวควบคุม
  • 0x8: LE Audio - การสตรีมสื่อแบบมีการควบคุม
  • 0x9: LE Audio - การสตรีมการโทร
  • 0xA: LE Audio - ออกอากาศ
  • 0xF: ปิดสวิตช์การเชื่อมต่อชั่วคราว (เช่น อัปเดตเฟิร์มแวร์)
บิตแมปของอุปกรณ์ที่เชื่อมต่อ

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

โปรดทราบว่าบิตแมปนี้ไม่ระบุชื่อ ผู้ร้องขอจะไม่สามารถทราบได้ว่าอุปกรณ์อื่นๆ เชื่อมโยงกับผู้ให้บริการหรือไม่ เช่น นำอุปกรณ์ที่เชื่อมโยง 5 เครื่องมาใช้ ดังนี้

  • 0: แล็ปท็อป (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: แท็บเล็ต (0b000x0000)
  • 4: ทีวี (0b0000x000)

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

โฆษณาแบบสุ่มที่สามารถแก้ไขได้

ผู้ให้บริการควรหมุนเวียนและเข้ารหัสช่องด้วยคีย์บัญชีโดยใช้ AES-CTR เพื่อหลีกเลี่ยงการติดตามและเคารพความเป็นส่วนตัวของผู้ใช้

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

ที่ไหน

  1. คีย์ได้มาจากคีย์บัญชีที่มีการใช้งาน ซึ่ง ได้กำหนดไว้ในส่วนถัดไป

    • คีย์สร้างขึ้นโดยฟังก์ชัน HKDF ซึ่งก็คือ IETF RFC 5869 โดยใช้ฟังก์ชันแฮช SHA-256

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • ผู้ให้บริการต้องใช้คีย์บัญชีดั้งเดิมในที่นี้ เช่น ไบต์แรกของคีย์คือ 0x04 ซึ่งไม่รวมอยู่ในรูปแบบการใช้งาน

  2. IV (เวกเตอร์เริ่มต้น) คือ Salt 2 ไบต์ของคีย์ข้อมูลของบัญชีที่มีระยะห่างจากขอบเป็นศูนย์ เช่น IV คือ Concat(Salt, 14 ไบต์)

  3. ข้อมูลดิบของสถานะการเชื่อมต่อระบุไว้ในตาราง 4.1 หากสถานะการเชื่อมต่อมีการเปลี่ยนแปลง คุณควรสร้าง Salt และ RPA ใหม่ในกรอบเวลาการโฆษณาเดียวกัน

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

โฆษณา BLE มีโครงสร้างดังนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า จำเป็นหรือไม่
0 uint8 เวอร์ชันและแฟล็ก 0x10 จำเป็น
1 - ตัน ข้อมูลคีย์บัญชี แตกต่างกันออกไป จำเป็น
t+1 - s ข้อมูลแบตเตอรี่ แตกต่างกันออกไป ไม่บังคับ
s+1 - var ข้อมูลแบบสุ่มที่แก้ไขได้ แตกต่างกันออกไป จำเป็นต้องบังคับหากรายการคีย์บัญชีไม่ว่างเปล่า
มิเช่นนั้นให้ยกเว้น

ตารางที่ 4.2: โฆษณา BLE ที่มีข้อมูลซึ่งแก้ไขได้แบบสุ่ม

ข้อมูลแบบสุ่มซึ่งแก้ไขได้ประกอบด้วย

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า จำเป็นหรือไม่
0 uint8 ความยาวและประเภทของช่อง
0bLLLLTTTT
  • L = ความยาวของข้อมูลที่เข้ารหัส
  • T = ประเภท
0bLLLL0110
  • ความยาว: แตกต่างกันไป
  • type = 0b0110
จำเป็น
1 - var ข้อมูลที่เข้ารหัส แตกต่างกันออกไป จำเป็น

ตารางที่ 4.2.1: ข้อมูลแบบสุ่มที่แก้ไขได้

ตัวอย่างเช่น หากข้อมูลแบบสุ่มซึ่งแก้ไขได้มีช่องสถานะการเชื่อมต่อที่เข้ารหัส ผลลัพธ์ที่ถอดรหัสแล้วจะเป็น ช่องสถานะการเชื่อมต่อ

เพื่อเป็นการป้องกันการงัดแงะ ควรปรับเปลี่ยนข้อมูลคีย์บัญชีด้านบนเล็กน้อย เมื่อมีการรวมข้อมูลแบบสุ่มที่แก้ไขได้ไว้ในโฆษณา โดยปกติแล้ว เมื่อสร้างตัวกรองคีย์บัญชี ค่า V จะสร้างขึ้นโดยการรวมตัวกรองคีย์บัญชีกับ Salt เมื่อมีการโฆษณาข้อมูลแบบสุ่มซึ่งแก้ไขได้ด้วยเช่นกัน คุณควรสร้างค่า V เป็น

 V = concat(account_key, salt, random_resolvable_data)

หากลงโฆษณาทั้งข้อมูลแบตเตอรี่และข้อมูลแบบสุ่มที่แก้ไขได้ V ควรสร้างเป็น

 V = concat(account_key, salt, battery_data, random_resolvable_data)

คีย์บัญชีที่ใช้งานอยู่

การเปลี่ยนการเชื่อมต่อจะขึ้นอยู่กับบัญชี ดังนั้นผู้ให้บริการจึงควรรวมข้อมูลบัญชีของการเชื่อมต่อปัจจุบันในโฆษณา BLE หากอุปกรณ์ที่เชื่อมต่อปัจจุบันเป็นผู้หาสวิตช์เสียง ผู้ให้บริการควรรับคีย์บัญชีที่เชื่อมโยงกับผู้ร้องขอนี้ได้ และใช้คีย์บัญชีนี้เพื่อเข้ารหัสช่องสถานะการเชื่อมต่อ หากแหล่งที่มาของเสียงที่เชื่อมต่อไม่ใช่ตัวค้นหาสวิตช์เสียง ผู้ให้บริการควรใช้คีย์บัญชีที่ใช้ล่าสุด

ก่อนคำนวณตัวกรองคีย์บัญชี ผู้ให้บริการควรแก้ไขไบต์แรกของคีย์บัญชีให้มีรูปแบบการใช้งานอย่างใดอย่างหนึ่งต่อไปนี้

  1. 0b00000100
    ไม่ได้ใช้งานคีย์บัญชีนี้
    นี่คือคีย์เริ่มต้น (ดูคีย์บัญชี)
  2. 0b00000101
    คีย์บัญชีนี้เป็นคีย์บัญชีที่ใช้ล่าสุด
    ช่องสถานะการเชื่อมต่อมีการเข้ารหัสโดยคีย์บัญชีนี้ ไม่มีข้อมูลคีย์บัญชีของสถานะการเชื่อมต่อปัจจุบัน อาจหมายความว่าไม่มีอุปกรณ์ที่เชื่อมต่ออยู่หรืออุปกรณ์ที่เชื่อมต่อไม่ใช่ตัวค้นหาสวิตช์เสียง
  3. 0b00000110
    คีย์บัญชีนี้เป็นคีย์บัญชีที่ใช้งานอยู่
    ช่องสถานะการเชื่อมต่อมีการเข้ารหัสด้วยคีย์บัญชีนี้ และอุปกรณ์ที่เชื่อมต่อในปัจจุบันมีการเชื่อมโยงอยู่กับคีย์บัญชีนี้

สคีมาสำหรับเพย์โหลดการเปลี่ยนเสียง

รูปด้านล่างแสดงสคีมาสำหรับเพย์โหลดการเปลี่ยนสัญญาณเสียง

ข้อความ

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

ชื่อกลุ่มข้อความ ค่า
สลับอุปกรณ์เสียง 0x07

รายละเอียดเพิ่มเติมสำหรับแต่ละรหัสข้อความจะรวมอยู่ในส่วนต่อไปนี้

ชื่อรหัสข้อความ ค่า เชื่อมต่อหลายจุดเท่านั้น ผู้ส่ง ผู้ตอบ เข้ารหัส MAC รับทราบ
ลองสลับอุปกรณ์เสียง 0x10 N ทั้งคู่ ทั้ง 2 อย่างผ่านโค้ด 0x11 N ไม่ N
แจ้งเตือนความสามารถในการสลับอุปกรณ์เสียง 11 N ทั้งคู่ ทั้งคู่ N ใช่ ใช่
ตั้งสถานะหลายจุด 0x12 ใช่ ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
ตั้งค่ากำหนดของการเปลี่ยน 0x20 ใช่ ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
ลองเปลี่ยนค่ากำหนด 0x21 ใช่ ผู้ค้นหา ผู้ให้บริการผ่านรหัส 0x22 N ไม่ N
แจ้งเตือนการเปลี่ยนค่ากำหนด 0x22 ใช่ ผู้ให้บริการ ผู้ค้นหา N ไม่ N
เปลี่ยนแหล่งที่มาของเสียงที่ใช้งานอยู่(เป็นอุปกรณ์ที่เชื่อมต่อ) 0x30 ใช่ ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
เปลี่ยนกลับ (เป็นอุปกรณ์ที่ไม่ได้เชื่อมต่อ) 0x31 N ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
แจ้งเตือนเหตุการณ์การเปลี่ยนจุดหลายจุด 0x32 ใช่ ผู้ให้บริการ ผู้ค้นหา N ไม่ N
ดูสถานะการเชื่อมต่อ 0x33 ใช่ ผู้ค้นหา ผู้ให้บริการผ่านรหัส 0x34 N ไม่ N
แจ้งเตือนสถานะการเชื่อมต่อ 0x34 ใช่ ผู้ให้บริการ ผู้ค้นหา ใช่ ไม่ N
แจ้งเตือนการเชื่อมต่อที่เริ่มต้นการสลับอุปกรณ์เสียง 0x40 N ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
ระบุคีย์บัญชีที่ใช้งานอยู่ 0x41 N ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
ส่งข้อมูลที่กำหนดเอง 0x42 N ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่
กำหนดเป้าหมายการตัดการเชื่อมต่อ 0x43 ใช่ ผู้ค้นหา ผู้ให้บริการ N ใช่ ใช่

ตารางที่ 4.3: ข้อความสลับเสียง

MAC ของข้อความสลับเสียง

หากต้องการตรวจสอบสิทธิ์ข้อความ ข้อความแบบสลับเสียงทั้งหมดที่มีข้อมูลเพิ่มเติมซึ่งส่งจากผู้หาถึงผู้ให้บริการจะต้องมี รหัสการตรวจสอบสิทธิ์ข้อความ เมื่อได้รับข้อความที่มี MAC ข้อความควรได้รับการตอบรับเพื่อให้ผู้ร้องขอทราบว่าผู้ให้บริการได้ตอบสนองต่อข้อความหรือไม่

หากการตรวจสอบสิทธิ์ข้อความสำเร็จ ผู้ให้บริการจะต้องส่ง ACK สำหรับข้อความดังนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 รับทราบ 0xFF
1 Uint8 รับทราบ 0x01
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม แตกต่างกันออกไป
4 Uint8 สลับอุปกรณ์เสียง 0x07
5 Uint8 รหัสข้อความการสลับอุปกรณ์เสียง แตกต่างกันออกไป
6 - วิ ข้อมูลเพิ่มเติม แตกต่างกันออกไป

หากไม่สำเร็จ ผู้ให้บริการจะต้องส่ง NAK สำหรับข้อความ

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 รับทราบ 0xFF
1 Uint8 นาค 0x02
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 0x0003
4 Uint8 สาเหตุของข้อผิดพลาด แตกต่างกันออกไป
5 Uint8 สลับอุปกรณ์เสียง 0x07
6 Uint8 รหัสข้อความการสลับอุปกรณ์เสียง แตกต่างกันออกไป

โปรดทราบว่าหากผู้ให้บริการเป็นผู้ส่ง ก็ไม่จำเป็นต้องใช้ MAC

รับความสามารถในการสลับอุปกรณ์เสียง

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

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 รับความสามารถในการสลับอุปกรณ์เสียง 0x10
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 0

ตารางที่ 4.3.1.0: รับความสามารถในการสลับอุปกรณ์เสียง

แจ้งเตือนความสามารถในการสลับอุปกรณ์เสียง

เมื่อได้รับ ความสามารถในการรับรหัสข้อความของ Audio Switch ผู้ค้นหา/ผู้ให้บริการสวิตช์ Audio จะตอบกลับด้วยการแจ้งอย่างใดอย่างหนึ่งต่อไปนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 แจ้งเตือนความสามารถในการสลับอุปกรณ์เสียง 11
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 20 หากผู้ร้องขอ
4 เป็นผู้ส่งข้อมูลนี้ หากผู้ให้บริการเป็นผู้ส่งข้อมูล
4-5 ปี Uint16 รหัสเวอร์ชันการสลับอุปกรณ์เสียง ค่าที่ไม่ใช่ 0 หมายความว่ารองรับการสลับอุปกรณ์เสียง รหัสเวอร์ชันปัจจุบัน (ที่มีการเพิ่มประสิทธิภาพความปลอดภัย) คือ 0x0102
0x0000 หรือไม่ตอบสนองใน 1 วินาที หมายความว่าระบบไม่รองรับการสลับอุปกรณ์เสียงในอุปกรณ์นี้
6 - 7 แฟล็ก แฟล็กความสามารถในการเปลี่ยนเสียงของผู้ให้บริการ
หาก Seeker ส่งข้อมูลนี้ ระบบควรละเว้น 2 ไบต์นี้
แตกต่างกันออกไป
โปรดดูค่าสถานะความสามารถในการสลับเสียง
8-15 ปี ค่า Nonce ของข้อความ
จำเป็นเมื่อผู้ค้นหาส่งสิ่งนี้เท่านั้น
แตกต่างกันออกไป
16 - 23 รหัสการตรวจสอบสิทธิ์ข้อความ
ต้องใช้เฉพาะเมื่อ Seeker เป็นผู้ส่งข้อความนี้
แตกต่างกันออกไป

ตารางที่ 4.3.1.1: แจ้งเตือนความสามารถในการสลับอุปกรณ์เสียง

แฟล็กความสามารถในการสลับเสียง
  1. บิต 0 (อ็อกเท็ต 6, MSB): สถานะการเปลี่ยนเสียง

    • 1 หากสถานะการเปลี่ยนเสียงเปิดอยู่
    • 0 หากไม่ใช่
  2. บิต 1: การกำหนดค่าหลายจุด

    • 1 หากอุปกรณ์รองรับหลายจุดและสามารถสลับเปิดปิดได้
    • 0 ไม่เช่นนั้น (ไม่รองรับหลายจุดหรือหลายจุดเปิดอยู่)
  3. บิต 2: สถานะปัจจุบันของหลายจุด

    • 1 หากเปิดหลายจุด
    • 0 หากไม่ใช่
  4. บิต 3: การตรวจจับด้านหน้า

    • 1 ถ้าอุปกรณ์นี้รองรับการตรวจจับบนศีรษะ (แม้ว่าจะปิดการตรวจจับบนศีรษะแล้วในตอนนี้)
    • 0 หากไม่ใช่
  5. บิต 4: สถานะปัจจุบันของการตรวจจับบนศีรษะ

    • 1 หากการตรวจจับศีรษะเปิดอยู่
    • 0 หากไม่ใช่ (ไม่รองรับการตรวจจับบนศีรษะหรือการตรวจจับบนศีรษะปิดอยู่)
  6. บิตอื่นๆ ทั้งหมดถูกสงวนไว้ โดยค่าเริ่มต้นคือ 0

ตั้งค่าสถานะหลายจุด

สำหรับผู้ที่ต้องการสลับสวิตช์เสียง เราอาจมีการตั้งค่าให้ผู้ใช้เปิด/ปิดฟังก์ชันหลายจุด Seeker จะตั้งค่าสถานะหลายจุดให้กับผู้ให้บริการโดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 ตั้งค่าสถานะหลายจุด 0x12
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 17
4 Uint8 สถานะหลายจุด 0: ปิดสวิตช์หลายจุด
1: เปิดสวิตช์หลายจุด
5-12 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
13 - 20 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตาราง 4.3.1.2: ตั้งค่าสถานะหลายจุด

ตั้งค่ากำหนดของการเปลี่ยน

ผู้ที่มองหาการสลับอุปกรณ์เสียงอาจแก้ไขค่ากำหนดการเปลี่ยนของการสลับอุปกรณ์หลายจุด และตั้งค่าให้กับผู้ให้บริการโดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 ตั้งค่ากำหนดของการเปลี่ยน 0x20
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 18
4 แฟล็ก การเปลี่ยนค่ากำหนด แตกต่างกันออกไป
ดูสถานะค่ากำหนดการสลับหลายจุด
5 การตั้งค่าการเปลี่ยนขั้นสูง
ไบต์นี้มีการสงวนไว้ ค่าเริ่มต้นคือ 0
แตกต่างกันออกไป
6 - 13 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
14-21 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตาราง 4.3.2.0: ตั้งค่ากำหนดการเปลี่ยน

แฟล็กค่ากำหนดการสลับหลายจุด
  • บิต 0 (MSB): A2DP เทียบกับ A2DP (ค่าเริ่มต้น 0)
  • บิต 1: HFP เทียบกับ HFP (ค่าเริ่มต้น 0)
  • บิต 2: A2DP เทียบกับ HFP (ค่าเริ่มต้น 0)
  • บิต 3: HFP เทียบกับ A2DP (ค่าเริ่มต้น 1)
  • บิต 4 - 7: สงวนไว้
  • ข้อมูลข้างต้นแสดงเป็น "คำขอโปรไฟล์ใหม่" กับ "โปรไฟล์ที่ใช้งานอยู่ในปัจจุบัน"
    • 0 สำหรับการไม่เปลี่ยน
    • 1 สำหรับการเปลี่ยน

รับการเปลี่ยนการตั้งค่า

ผู้ที่มองหาการสลับอุปกรณ์เสียงสามารถค้นหาค่ากำหนดการเปลี่ยนหลายจุดจากผู้ให้บริการโดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 รับการเปลี่ยนการกำหนดค่า 0x21
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 0

ตาราง 4.3.2.1: รับการเปลี่ยนค่ากำหนด

แจ้งเตือนการเปลี่ยนค่ากำหนด

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 แจ้งเตือนการเปลี่ยนค่ากำหนด 0x22
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 2
4 แฟล็ก การสลับแฟล็กค่ากำหนด แตกต่างกันออกไป
ดูสถานะค่ากำหนดการสลับหลายจุด
5 การตั้งค่าการเปลี่ยนขั้นสูง
ไบต์นี้มีการสงวนไว้ ค่าเริ่มต้นควรเป็น 0
แตกต่างกันออกไป

ตาราง 4.3.2.2: แจ้งค่ากำหนดการเปลี่ยน

สลับแหล่งที่มาของเสียงที่ใช้งานอยู่ (เป็นอุปกรณ์ที่เชื่อมต่อ)

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

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 สลับแหล่งที่มาของเสียงที่ใช้งานอยู่ (เป็นอุปกรณ์ที่เชื่อมต่อ) 0x30
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 17
4 แฟล็ก การเปลี่ยนแฟล็กเหตุการณ์แหล่งที่มาของเสียงที่ใช้งานอยู่ แตกต่างกันออกไป
ดูการเปลี่ยนเหตุการณ์แหล่งที่มาของเสียงที่ทำงานอยู่
5-12 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
13 - 20 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตารางที่ 4.3.3.0: เปลี่ยนแหล่งที่มาของเสียงที่ใช้งานอยู่ (เป็นอุปกรณ์ที่เชื่อมต่อ)

กำลังสลับเหตุการณ์แหล่งที่มาของเสียงที่ใช้งานอยู่
  • บิต 0 (MSB): 1 เปลี่ยนไปยังอุปกรณ์นี้, 0 เปลี่ยนเป็นอุปกรณ์ที่เชื่อมต่อเครื่องที่ 2
  • บิต 1: 1 เล่นต่อเมื่อสลับไปที่อุปกรณ์หลังจากเปลี่ยน หรือ 0 หากไม่ใช่ การกลับมาเล่นต่อหมายความว่าผู้ให้บริการจะส่งการแจ้งเตือน PLAY ไปยังผู้ร้องขอผ่านโปรไฟล์ AVRCP หากสถานะก่อนหน้า (ก่อนที่จะเปลี่ยน) ไม่ได้เป็น PLAY ผู้ให้บริการควรเพิกเฉยต่อแฟล็กนี้
  • บิตที่ 2: 1 ปฏิเสธ SCO ในอุปกรณ์ที่ไม่มีการใช้งาน หากไม่ใช่ 0 หากไม่ใช่
  • บิต 3: 1 ยกเลิกการเชื่อมต่อบลูทูธในอุปกรณ์สวิตช์เป็น 0 หรือไม่เช่นนั้น
  • บิต 4-7: สงวนไว้

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

เปลี่ยนกลับ (เป็นอุปกรณ์ที่ตัดการเชื่อมต่อ)

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

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 เปลี่ยนกลับ (เป็นอุปกรณ์ที่ตัดการเชื่อมต่อ) 0x31
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 17
4 Uint8 เปลี่ยนกลับกิจกรรม แตกต่างกันออกไป
0x01: เปลี่ยนกลับ
0x02: สลับกลับไปเล่นต่อ
5-12 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
13 - 20 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตารางที่ 4.3.3.1: เปลี่ยนกลับไปใช้อุปกรณ์ที่ไม่ได้เชื่อมต่อ)

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

แจ้งเตือนเหตุการณ์การเปลี่ยนจุดหลายจุด

เพื่อให้ผู้ใช้ทราบว่าเกิดเหตุการณ์การเปลี่ยนโหมดหลายจุด เครื่องมือสลับเสียงอาจแสดงการแจ้งเตือนแก่ผู้ใช้ ผู้ให้บริการควรแจ้งให้ผู้ที่ขอสวิตช์สัญญาณเสียงที่เชื่อมต่อได้ทราบเกี่ยวกับเหตุการณ์การเปลี่ยนอุปกรณ์

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 แจ้งเตือนเหตุการณ์การเปลี่ยนหลายจุด
ผู้ให้บริการควรส่งข้อมูลนี้ในทุกสวิตช์ รวมถึง ตัวเรียกดูสวิตช์เสียง ไปยัง ตัวเรียกดูสวิตช์ที่ไม่ใช่เสียง, ตัวค้นหาสวิตช์ที่ไม่ใช่เสียง, ตัวค้นหาเปลี่ยนเป็นเสียง ตัวหาและการสลับเสียง และผู้ต้องการสลับเสียง เป็นผู้หาสวิตช์เสียง
0x32
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม แตกต่างกันออกไป
4 Uint8 เหตุผลในการเปลี่ยน แตกต่างกันออกไป
0x00: ไม่ระบุ
0x01: สตรีมแบบ A2DP
0x02: HFP
5 Uint8 อุปกรณ์เป้าหมาย แตกต่างกันออกไป
0x01: อุปกรณ์นี้
0x02: อุปกรณ์ที่เชื่อมต่ออีกเครื่องหนึ่ง
6 - n Utf8 ชื่ออุปกรณ์เป้าหมาย
หากอุปกรณ์เป้าหมายคือ "ผู้ที่ต้องสลับสัญญาณเสียง" โดยใช้ชื่อที่ Seeker ส่งไปยัง หรือใช้ชื่อ BT หากไม่เกี่ยวข้อง หรือใช้ชื่อ 2 ไบต์สุดท้ายของที่อยู่
แตกต่างกันออกไป

ตารางที่ 4.3.3.2: แจ้งเตือนเหตุการณ์การเปลี่ยนจุดหลายจุด

ดูสถานะการเชื่อมต่อ

ผู้ขอจะทราบสถานะการเชื่อมต่อปัจจุบันจากผู้ให้บริการได้โดยทำดังนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 ดูสถานะการเชื่อมต่อ 0x33
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 0

ตาราง 4.3.3.3: ดูสถานะการเชื่อมต่อ

เมื่อได้รับข้อความนี้ ผู้ให้บริการจะต้องตอบกลับด้วยรหัสข้อความ 0x34 แจ้งสถานะการเชื่อมต่อ

แจ้งเตือนสถานะการเชื่อมต่อ

ตามที่กำหนดไว้ใน BLE เพย์โหลดการโฆษณาสำหรับผู้ให้บริการหลายจุด หากสถานะการเชื่อมต่อเปลี่ยนไป ยกเว้นการเปลี่ยนแพ็กเก็ตโฆษณา ผู้ให้บริการควรแจ้งให้ผู้ค้นหาที่เชื่อมต่อที่ใช้คีย์บัญชีเดียวกันทราบเกี่ยวกับการเปลี่ยนแปลงนี้ด้วย ถ้าผู้ให้บริการเชื่อมต่อกับ ผู้หาสวิตช์เสียงและตัวค้นหาสวิตช์ที่ไม่ใช่เสียง ถ้าตัวค้นหาสวิตช์ที่ไม่ใช่เสียง เปิดใช้งานอยู่ ผู้ให้บริการควรแจ้งให้ผู้ค้นหาสวิตช์เสียงที่เชื่อมต่อ เกี่ยวกับสถานะการเชื่อมต่อ (โดยใช้คีย์บัญชีของผู้หา) ด้วย

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 แจ้งเตือนสถานะการเชื่อมต่อ 0x34
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม แตกต่างกันออกไป
4 Uint8 แฟล็กอุปกรณ์ที่ใช้งานอยู่ แตกต่างกัน
0x00: Seeker นี้เป็นแบบแพสซีฟ และอุปกรณ์ที่ใช้งานอยู่ใช้คีย์บัญชีเดียวกัน
0x01: Seeker นี้เป็นอุปกรณ์ที่มีการใช้งาน
0x02: Seeker เป็นแบบแพสซีฟ และอุปกรณ์ที่ใช้งานอยู่ไม่ใช่ผู้หาสวิตช์เสียง
5 - n สถานะการเชื่อมต่อที่เข้ารหัส แตกต่างกันออกไป
n+1 - n+8 ค่า Nonce ของข้อความ แตกต่างกันออกไป

ตาราง 4.3.3.4: แจ้งสถานะการเชื่อมต่อ

ข้อความสถานะการเชื่อมต่อที่เข้ารหัส

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

โดยมี

แจ้งเตือนการเชื่อมต่อที่เริ่มต้นการสลับอุปกรณ์เสียง

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

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 แจ้งเตือนการเชื่อมต่อที่เริ่มต้นการสลับอุปกรณ์เสียง 0x40
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 17
4 Uint8 สัญญาณบอกสถานะการเชื่อมต่อที่เริ่มต้นโดยการเปลี่ยนอุปกรณ์เสียง แตกต่างกันออกไป
0: การเชื่อมต่อนี้ไม่ได้ทริกเกอร์โดยสวิตช์เสียง
1: นี่เป็นการเชื่อมต่อที่เริ่มการสลับอุปกรณ์เสียง
5-12 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
13 - 20 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตารางที่ 4.3.4.0: แจ้งเตือนการเชื่อมต่อที่เริ่มการสลับอุปกรณ์เสียง

ระบุคีย์บัญชีที่ใช้งานอยู่

หากมีคีย์บัญชีหลายรายการใน Seeker (เช่น ผู้ใช้หลายคน) เชื่อมโยงกับผู้ให้บริการ ผู้ส่งคำขอจะใช้ข้อความด้านล่างเพื่อระบุว่ากำลังใช้คีย์บัญชีใดอยู่

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 ระบุคีย์บัญชีที่ใช้งานอยู่ 0x41
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 22
4 - 9 Utf8 สตริงที่ใช้อยู่ UTF8 ("ใช้งานอยู่")
10 - 17 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
18 - 25 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตารางที่ 4.3.4.1: ระบุคีย์บัญชีที่ใช้งานอยู่

เมื่อได้รับข้อความนี้ ผู้ให้บริการจะทราบได้ว่ากำลังใช้คีย์บัญชีใดอยู่ โดยการยืนยันรหัสการตรวจสอบสิทธิ์ข้อความ

ส่งข้อมูลที่กำหนดเอง

ตัวค้นหาสวิตช์เสียงที่ใช้งานอยู่สามารถรวบรวมข้อมูล (เช่น การใช้เสียง) ของสตรีมเสียงเป็นไบต์ข้อมูลที่กำหนดเอง และส่งไปยังผู้ให้บริการโดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 ส่งข้อมูลที่กำหนดเอง 0x42
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 17
4 Uint8 ข้อมูลที่กำหนดเอง แตกต่างกันออกไป
5-12 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
13 - 20 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตารางที่ 4.3.4.2: ส่งข้อมูลที่กำหนดเอง

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

กำหนดเป้าหมายการตัดการเชื่อมต่อ

ในชุดหูฟังหลายจุด หากการเชื่อมต่อที่ต้องการสำหรับตัดไม่ใช่การเชื่อมต่อที่มีการใช้งานน้อยที่สุด ผู้ที่มองหาการสลับอุปกรณ์เสียงจะบอกผู้ให้บริการได้ว่าจะวางอุปกรณ์ใดลง โดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 Uint8 สลับอุปกรณ์เสียง 0x07
1 Uint8 กำหนดเป้าหมายการตัดการเชื่อมต่อ 0x43
2 - 3 Uint16 ความยาวของข้อมูลเพิ่มเติม 17
4 Uint8 กำหนดเป้าหมายอุปกรณ์ที่เชื่อมต่อที่จะละทิ้ง แตกต่างกันออกไป
1: อุปกรณ์นี้
5-12 ปี ค่า Nonce ของข้อความ แตกต่างกันออกไป
13 - 20 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกันออกไป

ตารางที่ 4.3.4.3: ตั้งเป้าหมายการเชื่อมต่อที่ลดลง

การติดตั้งข้อมูลอ้างอิง

ดู ไลบรารี SDK ที่ฝังอยู่ใกล้เคียงสำหรับการติดตั้งใช้งานข้อมูลอ้างอิง