
{"id":11100,"date":"2022-06-21T09:11:10","date_gmt":"2022-06-21T09:11:10","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/"},"modified":"2025-03-25T05:18:35","modified_gmt":"2025-03-25T05:18:35","slug":"bluetooth_service","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/","title":{"rendered":"Bluetooth Service"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n <html><body><h3 class=\"wp-sub-header\">Summary<\/h3><p>This API provides methods and events to support Bluetooth discovery, pairing and connecting. It also provides method to select appropriate audio sink and to chose audio stream to be streamed to device.<\/p><p>&nbsp;<\/p><h4 id=\"BluetoothService-Name:org.rdk.bluetoothSettings_3\">Name:&nbsp;&nbsp;<strong>org.rdk.bluetoothSettings_3<\/strong><\/h4><p>This is updated version of Bluetooth API. It provides events to support Bluetooth auto-connect&nbsp; notification for the last connected bluetooth device, in which the connection can be Accepted or Rejected<\/p><p>based on user interest. This API is extension of existing&nbsp;<strong>org.rdk.bluetoothSettings_2<\/strong>&nbsp;api.<\/p><p>&nbsp;<\/p><p><strong><span>Event:<\/span><\/strong><\/p><div class=\"table-wrap\"> <table class=\"confluenceTable\"><colgroup><col><col><col><\/colgroup><thead><tr><th class=\"confluenceTh\"><p>Name<\/p><\/th><th class=\"confluenceTh\"><p>Payload<\/p><\/th><th class=\"confluenceTh\"><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td colspan=\"1\" class=\"confluenceTd\">&nbsp;<strong>deviceFound<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p>&nbsp;<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>lastConnectedState:bool<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>One or more of third party devices, that have already been paired to the set top box, will send this event when they come inside the set top box range or gets powered Up within the range.<\/p><p>Separate notification is sent for each device that comes up, provided the device is already paired with the set top box.<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class<\/p><p><strong>lastConnectedState<\/strong>&nbsp;&#8211; true or false. Only the last connected device has the true status.<\/p><p>&nbsp;<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>deviceLost<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p>&nbsp;<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>lastConnectedState:bool<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>A third party device that is currently connected to the set top was lost(poweredOff) or went out of range.<\/p><p>Separate notification is sent for the lost device<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class<\/p><p><strong>lastConnectedState<\/strong>&nbsp;&#8211; true or false.&nbsp;Only the last connected device has the true status. Status is true in this case.<\/p><\/td><\/tr><\/tbody><\/table> <\/div><h4 id=\"BluetoothService-Name:org.rdk.bluetoothSettings_2\">Name:&nbsp;&nbsp;<strong>org.rdk.bluetoothSettings_2<\/strong><\/h4><p>This is updated version of Bluetooth API. It provides methods to support Bluetooth-In feature, allowing external source device to play audio through set top box.<\/p><p>This API is extension of existing&nbsp;<strong>org.rdk.bluetoothSettings_1<\/strong>&nbsp;api.<\/p><p>&nbsp;<\/p><p>Methods:<\/p><div class=\"table-wrap\"> <table class=\"confluenceTable\"><colgroup><col><col><col><col><\/colgroup><thead><tr><th class=\"confluenceTh\"><p>Name<\/p><\/th><th class=\"confluenceTh\"><p>Parameters<\/p><\/th><th class=\"confluenceTh\"><p>Return Value<\/p><\/th><th class=\"confluenceTh\"><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>getAudioInfo<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>deviceID:uint64<br><\/strong><\/p><p>&nbsp;<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>album: string<\/strong><\/p><p><strong>trackNumber: uint32<\/strong><\/p><p><strong>genre: string<\/strong><\/p><p><strong>duration: unit32<\/strong><\/p><p><strong>numberOfTracks:uint32<\/strong><\/p><p><strong>title: string<\/strong><\/p><p><strong>artist: string<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>This method provides info on currently playing song\/audio from external source. The returned info from Bluetooth-In device provides information that could be displayed on Tv screen.<\/p><p><strong>deviceID&nbsp;<\/strong>&#8211;&nbsp;ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes<\/p><p>&nbsp;<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>setPlayback<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>deviceID:uint64<br><\/strong><\/p><p><strong>audioCtrlCmd:String<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><p>This method provides control over connected source. Request can have one of the following values:<\/p><p>PLAY, PAUSE, STOP, SKIP_NEXT, RESTART, SKIP_PREVIOUS<\/p><p><strong>deviceID&nbsp;<\/strong>&#8211;&nbsp;ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes<\/p><p><strong>audioCtrlCmd&nbsp;<\/strong>&#8211;&nbsp;Audio control request to be set to the playback.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>respondToEvent<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>deviceID:uint64<\/strong><\/p><p><strong>eventType: string<\/strong><\/p><p><strong>respValue: string<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Responds to a bluetooth event.&nbsp; For example, can respond to a pairing or connection event and indicate the proper response, such as is the connection request accepted.<\/p><p>Details is in object that defines the following keys:<\/p><p><strong>eventType<\/strong>&nbsp;&#8211; CONNECTION, PAIRING, PLAYBACK<\/p><p><strong>responseValue<\/strong>&nbsp;&#8211; ACCEPTED, REJECTED<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211;&nbsp;ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes<\/p><\/td><\/tr><\/tbody><\/table> <\/div><p>&nbsp;<\/p><p>Event<\/p><div class=\"table-wrap\"> <table class=\"confluenceTable\"><thead><tr><th class=\"confluenceTh\"><p>Name<\/p><\/th><th class=\"confluenceTh\"><p>Payload<\/p><\/th><th class=\"confluenceTh\"><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td class=\"confluenceTd\"><strong>streamingStatusChanged<\/strong><\/td><td class=\"confluenceTd\"><strong>newStatus:String<\/strong><\/td><td class=\"confluenceTd\"><p>Returns the status change for Bluetooth In streaming functionality.&nbsp;<\/p><p>&#8220;PLAYBACK_STARTED&#8221; &#8211; playback was started<\/p><p>&#8220;PLAYBACK_STOPPED&#8221; &#8211; remote source stopped playback<\/p><p>&#8220;PLAYBACK_PAUSED&#8221; &#8211; remote source paused current playback<\/p><p>&#8220;PLAYBACK_ENDED&#8221; &#8211; remote source stopped playback and requested disconnect.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">&nbsp;<strong>connectionRequest<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>supportedProfle:String<\/strong><\/p><p><strong>manufacturer<strong>:<\/strong>String<\/strong><\/p><p><strong>MAC<strong>:<\/strong>String<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>A connection is requested by third party device that has already been paired to the set top box.<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class<\/p><p><strong>supportedProfle<\/strong>&nbsp;&#8211; list of profiles that are supported by device<\/p><p><strong>manufacturer<\/strong>&nbsp;&#8211; device manufacturer<\/p><p><strong>MAC<\/strong>&nbsp;&#8211; device MAC ID<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>playbackRequest<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>supportedProfle:String<\/strong><\/p><p><strong>manufacturer<strong>:<\/strong>String<\/strong><\/p><p><strong>MAC<strong>:<\/strong>String<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>A connection is requested by third party device that has already been paired to the set top box.<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class<\/p><p><strong>supportedProfle<\/strong>&nbsp;&#8211; list of profiles that are supported by device<\/p><p><strong>manufacturer<\/strong>&nbsp;&#8211; device manufacturer<\/p><p><strong>MAC<\/strong>&nbsp;&#8211; device MAC ID<\/p><\/td><\/tr><\/tbody><\/table> <\/div><h4 id=\"BluetoothService-Name:org.rdk.bluetoothSettings_1\">Name:&nbsp;&nbsp;<strong>org.rdk.bluetoothSettings_1<\/strong><\/h4><p>This is initial version of Bluetooth API. It provides methods to discover Bluetooth devices, retrieve list of paired and currently connected devices.<\/p><p>It also provides functions to initiate pairing and connecting.<\/p><p>Service Manager will send event in case external Bluetooth adapter is inserted or removed, when device connects or is disconnects, or if it requests to pair for input.<\/p><p>Existence of this API indicates that software support for Bluetooth in RDK stack exists.<\/p><p>&nbsp;<\/p><p>Methods:<\/p><div class=\"table-wrap\"> <table class=\"confluenceTable\"><colgroup><col><col><col><col><\/colgroup><thead><tr><th class=\"confluenceTh\"><p>Name<\/p><\/th><th class=\"confluenceTh\"><p>Parameters<\/p><\/th><th class=\"confluenceTh\"><p>Return Value<\/p><\/th><th class=\"confluenceTh\"><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>getStatusSupport<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>status:String<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Returns the current status of Bluetooth subsystem. Valid responses are:<\/p><p>&#8220;NO_BLUETOOTH_HARDWARE&#8221; &#8211; Bluetooth is supported in RDK software, but no Bluetooth hardware found<\/p><p>&#8220;SOFTWARE_DISABLED&#8221; &#8211; Bluetooth is currently disabled in software. Bluetooth needs to be enabled by calling&nbsp;<strong>setBluetoothEnabled<\/strong>.<\/p><p>&#8220;AVAILABLE&#8221; &#8211; Bluetooth stack is initialized, not software disabled and hardware is running.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>startDeviceDiscovery<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>timeout:int<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>status:String<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Initiates device discovery. Passes timeout in seconds. If call is made with timeout of 0 seconds, settop will immediately stop discovery.<\/p><p>Call returns status:<\/p><p>&#8220;NO_BLUETOOTH_HARDWARE&#8221; &#8211; Bluetooth is supported in RDK software, but no Bluetooth hardware found<\/p><p>AVAILABLE&#8221; &#8211; Bluetooth stack is initialized, not software disabled and hardware is running.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>stopDeviceDiscovery<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\">Stops Bluetooth device discovery immediately.<\/td><\/tr><tr><td class=\"confluenceTd\"><p><strong>getDiscoveredDevices<\/strong><\/p><\/td><td class=\"confluenceTd\">none<\/td><td class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong><br><\/strong><\/p><p><strong><br><\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>connectedState:bool<\/strong><\/p><p><strong><span>paired:bool&nbsp;<br><\/span><\/strong><\/p><p>}<\/p><\/td><td class=\"confluenceTd\"><p>Returns the list of discovered devices:<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p>Example: MAC 6C:A0:17:B6:00:24 will be represented with 64 bit ID whose hex representation will look like 0 x 00 00&nbsp;6C A0 17 B6 00 24<\/p><p>Example multiple Bluetooth speakers\/headphones in the same room.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class (examples &#8220;headset&#8221;, &#8220;speakers&#8221;, etc)<\/p><p><strong>connectedState<\/strong>&nbsp;&#8211; true or false<\/p><p><strong>paired<\/strong>&nbsp;&#8211; true or false<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><p><strong>getPairedDevices<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>connectedState:bool<br><\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Returns list of all paired device:<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class (examples &#8220;headset&#8221;, &#8220;speakers&#8221;, etc)<\/p><p><strong>connectedState<\/strong>&nbsp;&#8211; true or false<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><p><strong>getConnectedDevices<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>activeState:enum<br><\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Returns list of all connected devices. Multiple connections are supported.<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class (examples &#8220;headset&#8221;, &#8220;speakers&#8221;, etc)<\/p><p><strong>activeState<\/strong>&nbsp;&#8211; for devices that support low power mode this parameter will indicate<\/p><p>if device is in &#8220;STANDBY&#8221; mode&nbsp; ( value 0), &#8220;LOW_POWER&#8221; (1),&nbsp; or &#8220;ACTIVE&#8221;&nbsp; (2) mode.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><p><strong>setDeviceConnection<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>deviceID:uint64<br><\/strong><\/p><p><strong>enable:String<br><\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>none<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>This method requests RDK to connect to Bluetooth device.<\/p><p><strong>deviceIndex<\/strong>&#8211; Passes the MAC address of device to connect.<\/p><p><strong>enable<\/strong>: &#8220;CONNECT&#8221; &#8211; request to connect<\/p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;DISCONNECT&#8221; &#8211; request to end connection<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><p><strong>setAudioStream<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>deviceID:uint64<br><\/strong><\/p><p><strong>audionStreamName:String<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>none<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Passes the MAC address of device to connect.<\/p><p>Passes the parameter weather choose &#8220;PRIMARY&#8221; or &#8220;AUXILIARY&#8221; audio stream to be sent to audio sink.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><p><strong>setDevicePairing<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>deviceID:uint64<br><\/strong><\/p><p><strong>pair:boolean<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>none<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Passes the device ID to pairt. Device ID is obtained by calling&nbsp;<strong>getDiscoveredDevices<\/strong>.<\/p><p><strong>pair<\/strong>: true &#8211; request to pair<\/p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; false &#8211; request to remove pairing<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>setBluetoothEnabled<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>enabled:String<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Application enables or disables Bluetooth feature.<\/p><strong>enabled<\/strong>:<br><p>&#8220;BLUETOOTH_DISABLED&#8221; &#8211; Software disabled<\/p><p>&#8220;BLUETOOTH_ENABLED&#8221; &#8211; Software enables settop as a source device<\/p><p>&#8220;BLUETOOTH_INPUT_ENABLED&#8221; &#8211; Software enables&nbsp;settop as a source and sink device&nbsp;<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>setSinkDiscovery<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>enabled:String<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\">none<\/td><td colspan=\"1\" class=\"confluenceTd\"><p>This method enables settop discovery by other Bluetooth devices.<\/p><p><strong>enabled<\/strong>:<\/p><p>&#8220;true&#8221; Settop broadcasts Bluetooth sink discovery signal .<\/p><p>&#8220;false&#8221; Settop stops broadcasting Bluetooth sink discovery signal.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>getDeviceInfo<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\">&nbsp;<strong>deviceID:uint64<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name: String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>supportedProfle:String<\/strong><\/p><p><strong>manufacturer<strong>:<\/strong>uint64<\/strong><\/p><p><strong>MAC<strong>:<\/strong>String<\/strong><\/p><p><strong>rssi:int<\/strong><\/p><p><strong>signalStrength:float<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>device details device:<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; Device name as specified by manufacturer<\/p><p><strong>deviceType&nbsp;<\/strong>&#8211; Device class<\/p><p><strong>supportedProfle<\/strong>&nbsp;&#8211; list of profiles that are supported by device<\/p><p><strong>manufacturer<\/strong>&nbsp;&#8211; device manufacturer ID<\/p><p><strong>MAC<\/strong>&nbsp;&#8211; device MAC ID<\/p><p><strong>rssi<\/strong>&#8211; received signal strength indicator<\/p><p><strong>signalStrength<\/strong>&nbsp;&#8211; signal level in dBm received from connected device<\/p><\/td><\/tr><\/tbody><\/table> <\/div><p>&nbsp;<\/p><p>Events:<\/p><div class=\"table-wrap\"> <table class=\"confluenceTable\"><colgroup><col><col><col><\/colgroup><thead><tr><th class=\"confluenceTh\"><p>Name<\/p><\/th><th class=\"confluenceTh\"><p>Payload<\/p><\/th><th class=\"confluenceTh\"><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td class=\"confluenceTd\"><strong>statusChanged<\/strong><\/td><td class=\"confluenceTd\"><strong>newStatus:String<\/strong><\/td><td class=\"confluenceTd\"><p>Returns the status change for Bluetooth functionality.&nbsp;<\/p><p>&#8220;HARDWARE_AVAILABLE&#8221; &#8211; adapter inserted for external adapter, or onboard Bluetooth initialized and available<\/p><p>&#8220;HARDWARE_DISABLED&#8221; &#8211; adapter removed for external adapter, or onboard Bluetooth no longer available<\/p><p>&#8220;SOFTWARE_ENABLED&#8221; &#8211; Bluetooth functionality is enabled through software API<\/p><p>&#8220;SOFTWARE_INPUT_ENABLED&#8221; &#8211; Bluetooth input functionality is enabled through software API<\/p><p>&#8220;SOFTWARE_DISABLED&#8221; &#8211; Bluetooth functionality is disabled through software API<\/p><p>&#8220;PAIRING_CHANGE&#8221; &#8211; Pairing status changed. App&nbsp; should obtain updated list of paired devices by calling&nbsp;<strong>getPairedDevices<\/strong>.<\/p><p>&#8220;CONNECTION_CHANGE&#8221; &#8211; one or more Bluetooth connections changed status. App&nbsp; should obtain updated list of connected devices by calling&nbsp;<strong>getConnectedDevices<\/strong>.<\/p><p>&#8220;DISCOVERY_COMPLETED&#8221; &#8211; Bluetooth device discovery is completed, at least one device is available. Application should obtain updated list of discovered devices by calling<strong>getDiscoveredDevices<\/strong>.<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>pairingRequest<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>HashMap {<\/p><p><strong>deviceID:uint64<\/strong><\/p><p><strong>name:String<\/strong><\/p><p><strong>deviceType:String<\/strong><\/p><p><strong>supportedProfle:String<\/strong><\/p><p><strong>manufacturer<strong>:<\/strong>String<\/strong><\/p><p><strong>MAC<strong>:<\/strong>String<\/strong><\/p><p><strong>pinRequired:String<\/strong><\/p><p><strong>pinValue:String<\/strong><\/p><p>}<\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Pairing is requested by third party device that supports A2DP profile. Prerequisite is that settop is enabled as A2DP Sink device:<\/p><p><strong>deviceID<\/strong>&nbsp;&#8211; ID derived from Bluetooth MAC address. 6 byte MAC value is packed into 8 byte with leading zeros for first 2 bytes.<\/p><p><strong>name<\/strong>&nbsp;&#8211; device name as specified by manufacturer<\/p><p><strong>deviceType<\/strong>&nbsp;&#8211; device class<\/p><p><strong>supportedProfle<\/strong>&nbsp;&#8211; list of profiles that are supported by device<\/p><p><strong>manufacturer<\/strong>&nbsp;&#8211; device manufacturer<\/p><p><strong>MAC<\/strong>&nbsp;&#8211; device MAC ID<\/p><p><strong>pinRequired<\/strong>&nbsp;&#8211; Boolean &#8220;true&#8221; or &#8220;false&#8221;. If true, XRE needs to display PIN on TV screen. Connecting device needs to enter PIN to complete pairing.<\/p><p><strong>pinValue<\/strong>&nbsp;&#8211; PIN value<\/p><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>pinRequest<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>pinValue:String<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\">PIN is required for pairing in progress. XRE needs to update pairing screen with PIN info.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><strong>requestFailed<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><p><strong>errorID:String<\/strong><\/p><p><strong>MAC<strong>:<\/strong>String<\/strong><\/p><\/td><td colspan=\"1\" class=\"confluenceTd\"><p>Indicates that previous request to pair or connect failed. In absence of failure XRE would receive statusChanged when pairing or connecting succeeds.<strong><br><\/strong><\/p><p><strong>errorID<\/strong>&nbsp;&#8211; error identifier &#8220;PAIRING_FAILED&#8221;, &#8220;CONNECTING_FAILED&#8221;.<\/p><p><strong>MAC<\/strong>&nbsp;&#8211; MAC ID for failed request.<\/p><\/td><\/tr><\/tbody><\/table> <\/div><p>&nbsp;<\/p><\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Summary This API provides methods and events to support Bluetooth discovery, pairing and connecting. It [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":9864,"menu_order":1,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-11100","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bluetooth Service - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bluetooth Service - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"Summary This API provides methods and events to support Bluetooth discovery, pairing and connecting. It [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-25T05:18:35+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/\",\"name\":\"Bluetooth Service - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T09:11:10+00:00\",\"dateModified\":\"2025-03-25T05:18:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Video\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Bluetooth (BT)\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Bluetooth Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bluetooth Service - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/","og_locale":"en_US","og_type":"article","og_title":"Bluetooth Service - RDK Documentation Portal | Documentation","og_description":"Summary This API provides methods and events to support Bluetooth discovery, pairing and connecting. It [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2025-03-25T05:18:35+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/","name":"Bluetooth Service - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T09:11:10+00:00","dateModified":"2025-03-25T05:18:35+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/bluetooth_service\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Video","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"Bluetooth (BT)","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/bluetooth_bt\/"},{"@type":"ListItem","position":6,"name":"Bluetooth Service"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/11100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=11100"}],"version-history":[{"count":1,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/11100\/revisions"}],"predecessor-version":[{"id":11101,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/11100\/revisions\/11101"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9864"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=11100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}