Hearable Controls

Hearable controls on Fast Pair aim to provide better access controls for important Hearable features on Android. A new message group Hearable controls inside Message Stream has been added to achieve this.

Message Group Name Value
Hearable control 0x08

Active noise control

Active noise control is becoming a prominent feature for premium headphones. On the Seeker side, Fast Pair will have the UI and logic to set, get and save the state, and the state will be stored on the Provider side. To achieve this, below message codes are defined:

Message Code Name Value Sender Responder MAC ACK
Get ANC state 0x11 Seeker Provider N N
Set ANC state 0x12 Seeker Provider Y Y
Notify ANC state 0x13 Provider Seeker N N

When a Seeker connects to a Provider, or when a Provider receives a "Get ANC state" message, the Provider can Notify the ANC state to let the Seeker know its ANC capability and its stored state. The message is as below:

Byte Data Type Description Value
0 uint8 Hearable control 0x08
1 uint8 Notify ANC state 0x13
2 - 3 uint16 Additional data length 0x04
4 - 7 ANC control data varies
ANC control data
Byte Data Type Description Value
0 uint8 Version code varies, 0x01 for this version
1 Flags UI toggles
Each mode is enabled (1) or disabled (0) according to the value of its flag bit, as follows:
Bit 0 (MSB): transparent
Bit 1: Reserved (Set bit to 0)
Bit 2: off
Bit 3: Reserved (Set bit to 0)
Bit 4: ANC
varies
2 Flags Settable toggles
Any or all of the UI toggle bits above may also be set here, to indicate which are currently enabled.
varies
3 Flags Current state
Only one bit can be set
varies

The Seeker will show the toggle UI according to the ANC control data.

Example 1: The Provider supports 3-way ANC: transparent - off - ANC & buds are on-head, all modes are settable now, and current state is off:

Byte Data Type Description Value
0 uint8 Version code 0x01
1 Flags UI toggles 0b10101000
2 Flags Settable toggles 0b10101000
3 Flags Current state 0b00100000

Example 2: The Provider supports 3-way ANC: transparent - off - ANC, only one bud is on-head now or no buds is on-head, so no modes are settable, and the current state is off:

Byte Data Type Description Value
0 uint8 Version code 0x01
1 Flags UI toggle 0b10101000
2 Flags Settable toggle 0b00000000
3 Flags Current state 0b00100000

If the user switches the toggle, the Seeker will set the current state to the Provider as below:

Byte Data Type Description Value
0 uint8 Hearable control 0x08
1 uint8 Set ANC state 0x12
2 - 3 uint16 Additional data length 0x11
4 Flags Current state varies
8 - 15 Message nonce varies
16 - 23 Message authentication code varies

When a Provider receives a "Set ANC state" message, it should Acknowledge, and Notify ANC state to all connected Seekers. If the user changes the setting via headset gesture or companion application, the Provider should also send notification to all connected Seekers.