컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
히어러블 제어
빠른 페어링의 히어러블 제어는 Android에서 중요한 히어러블 기능에 대한 더 나은 액세스 제어를 제공하는 것을 목표로 합니다. 이를 위해 메시지 스트림 내에 새로운 메시지 그룹 Hearable controls가 추가되었습니다.
액티브 노이즈 제어
액티브 노이즈 제어는 프리미엄 헤드폰의 주요 기능이 되고 있습니다. 탐색기 측에서는 빠른 페어링에 상태를 설정, 가져오기, 저장하는 UI와 로직이 있으며 상태는 제공자 측에 저장됩니다.
이벤트 스트림이 연결되면 제공자가 세션 nonce를 전송해야 합니다.
이를 위해 아래 메시지 코드가 정의됩니다.
메시지 코드 이름 |
값 |
보내는 사람 |
대응 담당자 |
MAC |
확인 |
ANC 상태 가져오기 |
0x11 |
Seeker |
제공업체 |
N |
N |
ANC 상태 설정 |
0x12 |
Seeker |
제공업체 |
Y |
Y |
ANC 상태 알림 |
0x13 |
제공업체 |
Seeker |
N |
N |
탐색기가 제공업체에 연결되거나 제공업체가 'ANC 상태 가져오기' 메시지를 수신하면 제공업체는 ANC 상태를 알려 탐색기에게 ANC 기능과 저장된 상태를 알릴 수 있습니다. 메시지는 다음과 같습니다.
바이트 |
데이터 유형 |
설명 |
값 |
0 |
uint8 |
히어러블 제어 |
0x08 |
1 |
uint8 |
ANC 상태 알림 |
0x13 |
2~3개 |
uint16 |
추가 데이터 길이 |
0x04 |
4 - 7 |
|
ANC 제어 데이터 |
다양함 |
ANC 제어 데이터
바이트 |
데이터 유형 |
설명 |
값 |
0 |
uint8 |
버전 코드 |
다름, 이 버전의 경우 0x02 |
1 |
플래그 |
UI 전환 각 모드는 플래그 비트 값에 따라 사용 설정 (1) 또는 사용 중지 (0)됩니다. 비트 0 (MSB): 투명 비트 1: 적응형 (지원되지 않는 경우 0) 비트 2: 꺼짐 비트 3: 예약됨 (비트를 0으로 설정) 비트 4: ANC |
다양함 |
2 |
플래그 |
설정 가능한 전환 버튼 현재 사용 설정된 항목을 나타내기 위해 위의 UI 전환 버튼 비트 중 일부 또는 전부를 여기에 설정할 수도 있습니다. |
다양함 |
3 |
플래그 |
현재 상태 비트 하나만 설정할 수 있으며 이 바이트의 값은 0이 아니어야 합니다. |
다양함 |
ANC 제어 데이터에 따라 Seeker에 전환 버튼 UI가 표시됩니다.
예 1: 제공업체에서 3방향 ANC를 지원합니다. 투명 - 사용 안함 - ANC이며 이어폰이 머리에 장착되어 있고 모든 모드를 설정할 수 있으며 현재 상태는 사용 안함입니다.
바이트 |
데이터 유형 |
설명 |
값 |
0 |
uint8 |
버전 코드 |
0x01 |
1 |
플래그 |
UI 전환 |
0b10101000 |
2 |
플래그 |
설정 가능한 전환 버튼 |
0b10101000 |
3 |
플래그 |
현재 상태 |
0b00100000 |
예 2: 공급자가 3방향 ANC(투명 - 꺼짐 - ANC)를 지원하고 현재 헤드에 이어폰이 하나만 있거나 헤드에 이어폰이 없으므로 모드를 설정할 수 없으며 현재 상태는 꺼짐입니다.
바이트 |
데이터 유형 |
설명 |
값 |
0 |
uint8 |
버전 코드 |
0x01 |
1 |
플래그 |
UI 전환 |
0b10101000 |
2 |
플래그 |
설정 가능한 전환 |
0b00000000 |
3 |
플래그 |
현재 상태 |
0b00100000 |
사용자가 전환 버튼을 전환하면 Seeker는 다음과 같이 현재 상태를 Provider에 설정합니다.
바이트 |
데이터 유형 |
설명 |
값 |
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 제어 데이터입니다. 추가 길이 값이 0x14로 설정된 경우 예약된 바이트 8~23이 표시되며 이러한 바이트를 수신하면 제공업체는 이를 무시해야 합니다.
추가 길이 값이 0x04로 설정된 경우 예약된 바이트가 없습니다.
공급자가 'ANC 상태 설정' 메시지를 수신하면 연결된 모든 탐색기에 확인하고 ANC 상태를 알려야 합니다.
사용자가 헤드셋 동작이나 동반자 앱을 통해 설정을 변경하는 경우 제공자는 연결된 모든 시커에게 알림을 전송해야 합니다.
예 3: 제공업체는 투명 - 적응형 - 사용 안함 - ANC의 4방향 ANC를 지원하고, 이어폰은 머리에 착용되어 있으며, 이제 모든 모드를 설정할 수 있고 현재 상태는 적응형입니다.
바이트 |
데이터 유형 |
설명 |
값 |
0 |
uint8 |
버전 코드 |
0x01 |
1 |
플래그 |
UI 전환 |
0b11101000 |
2 |
플래그 |
설정 가능한 전환 |
0b11101000 |
3 |
플래그 |
현재 상태 |
0b01000000 |
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-28(UTC)
[null,null,["최종 업데이트: 2025-08-28(UTC)"],[[["\u003cp\u003eHearable Controls utilize Message Stream to enhance access to headphone features on Android.\u003c/p\u003e\n"],["\u003cp\u003eActive Noise Control (ANC) functionality allows for setting, retrieving, and saving noise cancellation preferences.\u003c/p\u003e\n"],["\u003cp\u003eANC state is communicated between devices, allowing the user interface to reflect available and current noise control modes.\u003c/p\u003e\n"],["\u003cp\u003eANC state can be controlled by the user via device UI and is synchronized across connected devices through notifications.\u003c/p\u003e\n"]]],["Hearable controls are added within the Message Stream for better access to hearable features. Active Noise Control (ANC) functionality is implemented, allowing the Seeker to get, set, and save the ANC state, which is stored by the Provider. The Provider can notify the Seeker of ANC capabilities and stored state. UI toggles for ANC are managed via flags, including transparent, off, and ANC modes. The Seeker sends a \"Set ANC state\" message to update the current ANC mode. The Provider must acknowledge these messages and notify connected Seekers.\n"],null,["Hearable Controls\n\nHearable controls on Fast Pair aim to provide better access controls for\nimportant Hearable features on Android. A new message group Hearable\ncontrols inside [Message Stream](/nearby/fast-pair/specifications/extensions/messagestream#MessageStream \"Message Stream\") has been added to achieve this.\n\n| Message Group Name | Value |\n|--------------------|-------|\n| Hearable control | 0x08 |\n\nActive noise control\n\nActive noise control is becoming a prominent feature for premium headphones. On\nthe Seeker side, Fast Pair will have the UI and logic to set, get and save the\nstate, and the state will be stored on the Provider side.\nIt is mandatory for provider to send [Session Nonce](/nearby/fast-pair/specifications/extensions/mac#SessionAndMessageNonce \"Session Nonce\") when event\nstream is connected.\nTo achieve this, below message codes are defined:\n\n| Message Code Name | Value | Sender | Responder | MAC | ACK |\n|-------------------|-------|----------|-----------|-----|-----|\n| Get ANC state | 0x11 | Seeker | Provider | N | N |\n| Set ANC state | 0x12 | Seeker | Provider | Y | Y |\n| Notify ANC state | 0x13 | Provider | Seeker | N | N |\n\nWhen a Seeker connects to a Provider, or when a Provider receives a \"Get ANC\nstate\" message, the Provider\ncan Notify the ANC state to let the Seeker know its ANC capability and its\nstored state. The message is as follow:\n\n| Byte | Data Type | Description | Value |\n|-------|-----------|-------------------------------------|----------|\n| 0 | uint8 | Hearable control | 0x08 |\n| 1 | uint8 | Notify ANC state | 0x13 |\n| 2 - 3 | uint16 | Additional data length | 0x04 |\n| 4 - 7 | | [ANC control data](#ANCControlData) | *varies* |\n\nANC control data\n\n| Byte | Data Type | Description | Value |\n|------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|\n| 0 | uint8 | Version code | *varies*, 0x02 for this version |\n| 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: adaptive (or 0 if it is not supported) Bit 2: off Bit 3: Reserved (Set bit to 0) Bit 4: ANC | *varies* |\n| 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* |\n| 3 | Flags | Current state Only one bit can be set and value of this byte shall be non zero. | *varies* |\n\nThe Seeker will show the toggle UI according to the ANC control data.\n\nExample 1: The Provider supports 3-way ANC: transparent - off - ANC \\& buds are\non-head, all modes are settable now, and current state is off:\n\n| Byte | Data Type | Description | Value |\n|------|-----------|------------------|------------|\n| 0 | uint8 | Version code | 0x01 |\n| 1 | Flags | UI toggles | 0b10101000 |\n| 2 | Flags | Settable toggles | 0b10101000 |\n| 3 | Flags | Current state | 0b00100000 |\n\nExample 2: The Provider supports 3-way ANC: transparent - off - ANC, only one\nbud is on-head now or no buds is on-head, so no modes are settable, and the\ncurrent state is off:\n\n| Byte | Data Type | Description | Value |\n|------|-----------|-----------------|------------|\n| 0 | uint8 | Version code | 0x01 |\n| 1 | Flags | UI toggle | 0b10101000 |\n| 2 | Flags | Settable toggle | 0b00000000 |\n| 3 | Flags | Current state | 0b00100000 |\n\nIf the user switches the toggle, the Seeker will set the current state to the\nProvider as follow:\n\n| Byte | Data Type | Description | Value |\n|--------|-----------|-------------------------------------|------------------------|\n| 0 | uint8 | Hearable control | 0x08 |\n| 1 | uint8 | Set ANC state | 0x12 |\n| 2 - 3 | uint16 | Additional data length | *varies*, 0x04 or 0x14 |\n| 4 | uint8 | Seeker Version code | *varies*, 0x01 or 0x02 |\n| 5 | Flags | ANC Settable modes (UI toggle) | *varies* |\n| 6 | Flags | ANC Enabled modes (Settable toggle) | *varies* |\n| 7 | Flags | New ANC mode index (New state) | *varies* |\n| 8 - 23 | | Reserved | *varies* |\n\nThe byte 4 - 7 is actually [ANC control data](#ANCControlData) sent from\nSeeker side. If additional length value is set as 0x14, the reserved bytes 8-23\nwould be present and on receipt of these bytes, the provider should ignore them.\nIf additional length value is set as 0x04, there are no reserved bytes present.\n\nWhen a Provider receives a \"Set ANC state\" message, it should [Acknowledge](/nearby/fast-pair/specifications/extensions/acknowledgement#MessageStreamAcknowledgements \"Message Stream Acknowledgements\"),\nand Notify ANC state to all connected Seekers.\nIf the user changes the setting via headset gesture or companion application,\nthe Provider should also send notification to all connected Seekers.\n\nExample 3: The Provider supports 4-way ANC: transparent - adaptive - off - ANC,\nbuds are on-head, all modes are settable now, and current state is adaptive:\n\n| Byte | Data Type | Description | Value |\n|------|-----------|-----------------|------------|\n| 0 | uint8 | Version code | 0x01 |\n| 1 | Flags | UI toggle | 0b11101000 |\n| 2 | Flags | Settable toggle | 0b11101000 |\n| 3 | Flags | Current state | 0b01000000 |"]]