Steuerung von Hearables
Die Hearable-Steuerung über Schnelles Pairing soll eine bessere Zugriffssteuerung für wichtige Hearable-Funktionen auf Android-Geräten ermöglichen. Dazu wurde in Message Stream eine neue Nachrichtengruppe „Hearable-Steuerelemente“ hinzugefügt.
| Name der Nachrichtengruppe | Wert |
|---|---|
| Steuerung von Hearables | 0x08 |
Einstellungen für die aktive Geräuschunterdrückung
Die aktive Geräuschunterdrückung wird zu einer wichtigen Funktion für Premium-Kopfhörer. Auf der Seeker-Seite enthält „Schnelles Pairing“ die Benutzeroberfläche und Logik zum Festlegen, Abrufen und Speichern des Status. Der Status wird auf der Provider-Seite gespeichert. Der Anbieter muss die Session Nonce senden, wenn der Ereignisstream verbunden ist. Dazu sind die folgenden Nachrichtencodes definiert:
| Codename der Nachricht | Wert | Sender | Teilnehmer | MAC | ACK |
|---|---|---|---|---|---|
| ANC-Status abrufen | 0x11 | Sucher | Anbieter | N | N |
| ANC-Status festlegen | 0x12 | Sucher | Anbieter | J | J |
| ANC-Status benachrichtigen | 0x13 | Anbieter | Sucher | N | N |
Wenn sich ein Seeker mit einem Provider verbindet oder ein Provider eine „Get ANC state“-Nachricht empfängt, kann der Provider den ANC-Status benachrichtigen, um dem Seeker seine ANC-Funktion und seinen gespeicherten Status mitzuteilen. Die Meldung lautet:
| Byte | Datentyp | Beschreibung | Wert |
|---|---|---|---|
| 0 | uint8 | Steuerung von Hearables | 0x08 |
| 1 | uint8 | ANC-Status benachrichtigen | 0x13 |
| 2–3 | uint16 | Zusätzliche Datenlänge | 0x04 |
| 4–7 | ANC-Steuerungsdaten | variiert |
ANC-Steuerungsdaten
| Byte | Datentyp | Beschreibung | Wert |
|---|---|---|---|
| 0 | uint8 | Versionscode | variiert, 0x02 für diese Version |
| 1 | Flags | UI-Schalter Jeder Modus ist entsprechend dem Wert seines Flag-Bits aktiviert (1) oder deaktiviert (0): Bit 0 (MSB): transparent Bit 1: adaptiv (oder 0, wenn nicht unterstützt) Bit 2: aus Bit 3: reserviert (Bit auf 0 setzen) Bit 4: ANC |
variiert |
| 2 | Flags | Einstellbare Ein/Aus-Schalter Alle oder einige der oben genannten Ein/Aus-Schalter für die Benutzeroberfläche können auch hier festgelegt werden, um anzugeben, welche derzeit aktiviert sind. |
variiert |
| 3 | Flags | Aktueller Status Es kann nur ein Bit festgelegt werden und der Wert dieses Byte darf nicht null sein. |
variiert |
Der Seeker zeigt die Benutzeroberfläche für das Ein-/Ausschalten entsprechend den ANC-Steuerungsdaten an.
Beispiel 1: Der Anbieter unterstützt die 3-Wege-ANC: transparent – aus – ANC. Die Kopfhörer werden getragen, alle Modi sind jetzt einstellbar und der aktuelle Status ist „Aus“:
| Byte | Datentyp | Beschreibung | Wert |
|---|---|---|---|
| 0 | uint8 | Versionscode | 0x02 |
| 1 | Flags | UI-Schaltflächen | 0b10101000 |
| 2 | Flags | Ein/Aus-Schalter | 0b10101000 |
| 3 | Flags | Aktueller Status | 0b00100000 |
Beispiel 2: Der Anbieter unterstützt die 3-Wege-ANC: transparent – aus – ANC. Nur ein Kopfhörer wird getragen oder es werden keine Kopfhörer getragen. Daher können keine Modi festgelegt werden und der aktuelle Status ist „Aus“:
| Byte | Datentyp | Beschreibung | Wert |
|---|---|---|---|
| 0 | uint8 | Versionscode | 0x02 |
| 1 | Flags | UI-Ein/Aus-Schalter | 0b10101000 |
| 2 | Flags | Ein/Aus-Button für Einstellungen | 0b00000000 |
| 3 | Flags | Aktueller Status | 0b00100000 |
Wenn der Nutzer den Schalter umlegt, legt der Seeker den aktuellen Status für den Provider wie folgt fest:
| Byte | Datentyp | Beschreibung | Wert |
|---|---|---|---|
| 0 | uint8 | Steuerung von Hearables | 0x08 |
| 1 | uint8 | ANC-Status festlegen | 0x12 |
| 2–3 | uint16 | Zusätzliche Datenlänge | variiert, 0x04 oder 0x14 |
| 4 | uint8 | Seeker-Versionscode | variiert, 0x01 oder 0x02 |
| 5 | Flags | Einstellbare ANC-Modi (UI-Schaltfläche) | variiert |
| 6 | Flags | Modi mit aktivierter ANC (einstellbarer Schalter) | variiert |
| 7 | Flags | Neuer ANC-Modusindex (neuer Status) | variiert |
| 8–23 | Reserviert | variiert |
Die Bytes 4 bis 7 sind ANC-Steuerungsdaten, die vom Seeker gesendet werden. Wenn der zusätzliche Längenwert auf 0x14 gesetzt ist, sind die reservierten Bytes 8–23 vorhanden. Der Anbieter sollte sie ignorieren, wenn er sie empfängt. Wenn der zusätzliche Längenwert auf 0x04 festgelegt ist, sind keine reservierten Byte vorhanden.
Wenn ein Anbieter eine Nachricht vom Typ „Set ANC state“ erhält, sollte er den Empfang bestätigen und alle verbundenen Seekers über den ANC-Status informieren. Wenn der Nutzer die Einstellung über eine Headset-Geste oder eine Companion-App ändert, sollte der Anbieter auch eine Benachrichtigung an alle verbundenen Sucher senden.
Beispiel 3: Der Anbieter unterstützt die 4-Wege-ANC: transparent – adaptiv – aus – ANC. Die Kopfhörer sind auf dem Kopf, alle Modi können jetzt eingestellt werden und der aktuelle Status ist „adaptiv“:
| Byte | Datentyp | Beschreibung | Wert |
|---|---|---|---|
| 0 | uint8 | Versionscode | 0x02 |
| 1 | Flags | UI-Ein/Aus-Schalter | 0b11101000 |
| 2 | Flags | Ein/Aus-Button für Einstellungen | 0b11101000 |
| 3 | Flags | Aktueller Status | 0b01000000 |