forked from google/nearby
-
Notifications
You must be signed in to change notification settings - Fork 1
Feature Flags
kidfromjupiter edited this page Jan 23, 2026
·
2 revisions
This page documents the platform FeatureFlags (FeatureFlags::Flags) defined in
internal/platform/feature_flags.h and their default values. These flags control
runtime behavior used across mediums, BWU logic, multiplexing, and other
platform behaviors.
- Read: FeatureFlags::GetInstance().GetFlags()
- Override for tests: FeatureFlags::GetMutableFlagsForTesting() or FeatureFlags::SetFlags(const Flags&)
General
- enable_cancellation_flag = true Controls whether cancellation flag support is enabled.
- enable_async_bandwidth_upgrade = true Allow asynchronous bandwidth upgrade flows.
- cancel_waits_for_running_tasks = true If a scheduled runnable is already running, Cancel() will synchronously wait for task completion.
- keep_alive_interval_millis = 5000
- keep_alive_timeout_millis = 30000 Keep-alive interval/timeout (ms).
Bandwidth upgrade (BWU)
- use_exp_backoff_in_bwu_retry = true If true, BWU retries use exponential backoff.
- bwu_retry_exp_backoff_initial_delay = 3s
- bwu_retry_exp_backoff_maximum_delay = 300s
- enable_send_payload_offset = true Support starting file/stream payloads at a non-zero offset.
- support_multiple_bwu_mediums = true Better bookkeeping to support multiple BWU mediums and endpoints.
- enable_async_bandwidth_upgrade = true
Bluetooth / Connection
- enable_set_radio_state = false Allow code to change bluetooth radio state (disabled by default).
- enable_connection_timeout = true Medium connection will timeout when unable to connect within a duration.
- enable_bluetooth_connection_status_track = true Track Bluetooth Classic connection status.
- enable_scan_for_fast_pair_advertisement = false Enable BLE scan for Fast Pair advertisement UUID (0x2cfe).
- skip_service_discovery_before_connecting_to_rfcomm = false Skip SDP check when connecting over RFCOMM (Windows workaround).
- enable_ble_v2_async_scanning = false Use async StartScanning/StopScanning for BLE V2.
- enable_invoking_legacy_device_discovered_cb = false Enable legacy discovered-device callback inside BLE V2 flow.
Safe-to-disconnect / auto-reconnect / ack behavior
- min_nc_version_supports_safe_to_disconnect = 1
- min_nc_version_supports_auto_reconnect = 3
- safe_to_disconnect_reconnect_retry_delay_millis = 4000ms
- safe_to_disconnect_reconnect_timeout_millis = 15000ms
- safe_to_disconnect_reconnect_retry_attempts = 3
- safe_to_disconnect_skip_duplicated_endpoint_duration = 2000ms
- min_nc_version_supports_payload_received_ack = 6
- safe_to_disconnect_ack_delay_millis = 30000ms
- safe_to_disconnect_remote_disc_delay_millis = 10000ms
- safe_to_disconnect_auto_resume_timeout_millis = 60000ms
- wait_payload_received_ack_millis = 1000ms
Multiplexing / Mediums
- mediums_frame_read_timeout_millis = 15000ms
- mediums_frame_write_timeout_millis = 15000ms
- multiplex_socket_connection_response_timeout_millis = 3000ms
- multiplex_socket_middle_priority_queue_capacity = 50
- connection_max_frame_length = 1048576
- blocking_queue_stream_queue_capacity = 10
- support_web_rtc_non_cellular_medium = false
- NearbyFlags is a separate flag reader used throughout the Connections code (see internal/flags/nearby_flags.h and default_flag_reader.h). Use NearbyFlags::GetInstance() to query and override boolean/int/string flags when necessary.
- internal/platform/feature_flags.h
- internal/flags/nearby_flags.h
- internal/flags/default_flag_reader.h