Description
Use the chrome.bluetooth API to connect to a Bluetooth device. All functions report failures via chrome.runtime.lastError.
Manifest
Types
AdapterState
Properties
- 
    addressstring The address of the adapter, in the format 'XX:XX:XX:XX:XX:XX'. 
- 
    availableboolean Indicates whether or not the adapter is available (i.e. enabled). 
- 
    discoveringboolean Indicates whether or not the adapter is currently discovering. 
- 
    namestring The human-readable name of the adapter. 
- 
    poweredboolean Indicates whether or not the adapter has power. 
BluetoothFilter
Properties
- 
    filterTypeFilterType optional Type of filter to apply to the device list. Default is all. 
- 
    limitnumber optional Maximum number of bluetooth devices to return. Default is 0 (no limit) if unspecified. 
Device
Properties
- 
    addressstring The address of the device, in the format 'XX:XX:XX:XX:XX:XX'. 
- 
    batteryPercentagenumber optional Chrome 77+The remaining battery of the device. 
- 
    connectableboolean optional Chrome 48+Indicates whether the device is connectable. 
- 
    connectedboolean optional Indicates whether the device is currently connected to the system. 
- 
    connectingboolean optional Chrome 48+Indicates whether the device is currently connecting to the system. 
- 
    deviceClassnumber optional The class of the device, a bit-field defined by http://www.bluetooth.org/en-us/specification/assigned-numbers/baseband. 
- 
    deviceIdnumber optional 
- 
    inquiryRssinumber optional Chrome 44+The received signal strength, in dBm. This field is avaliable and valid only during discovery. Outside of discovery it's value is not specified. 
- 
    inquiryTxPowernumber optional Chrome 44+The transmitted power level. This field is avaliable only for LE devices that include this field in AD. It is avaliable and valid only during discovery. 
- 
    namestring optional The human-readable name of the device. 
- 
    pairedboolean optional Indicates whether or not the device is paired with the system. 
- 
    productIdnumber optional 
- 
    transportTransport optional Chrome 76+The transport type of the bluetooth device. 
- 
    typeDeviceType optional The type of the device, if recognized by Chrome. This is obtained from the deviceClassfield and only represents a small fraction of the possible device types. When in doubt you should use thedeviceClassfield directly.
- 
    uuidsstring[] optional UUIDs of protocols, profiles and services advertised by the device. For classic Bluetooth devices, this list is obtained from EIR data and SDP tables. For Low Energy devices, this list is obtained from AD and GATT primary services. For dual mode devices this may be obtained from both. 
- 
    vendorIdnumber optional 
- 
    vendorIdSourceVendorIdSource optional The Device ID record of the device, where available. 
DeviceType
Common device types recognized by Chrome.
Enum
"computer"  "phone"  "modem"  "audio"  "carAudio"  "video"  "peripheral"  "joystick"  "gamepad"  "keyboard"  "mouse"  "tablet"  "keyboardMouseCombo" 
 
 
 
 
 
 
 
 
 
 
 
 
 
FilterType
Types for filtering bluetooth devices.
Enum
"all"  "known" 
 
 
Transport
Transport type of the bluetooth device.
Enum
"invalid"  "classic"  "le"  "dual" 
 
 
 
 
VendorIdSource
Allocation authorities for Vendor IDs.
Enum
"bluetooth"  "usb" 
 
 
Methods
getAdapterState()
chrome.bluetooth.getAdapterState(
callback?: function,
): Promise<AdapterState>
Get information about the Bluetooth adapter.
Parameters
- 
    callbackfunction optional The callbackparameter looks like:(adapterInfo: AdapterState) => void - 
    adapterInfoObject containing the adapter information. 
 
- 
    
Returns
- 
            Promise<AdapterState> Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
getDevice()
chrome.bluetooth.getDevice(
deviceAddress: string,
callback?: function,
): Promise<Device>
Get information about a Bluetooth device known to the system.
Parameters
- 
    deviceAddressstring Address of device to get. 
- 
    callbackfunction optional The callbackparameter looks like:(deviceInfo: Device) => void - 
    deviceInfoObject containing the device information. 
 
- 
    
Returns
- 
            Promise<Device> Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
getDevices()
chrome.bluetooth.getDevices(
filter?: BluetoothFilter,
callback?: function,
): Promise<Device[]>
Get a list of Bluetooth devices known to the system, including paired and recently discovered devices.
Parameters
- 
    filterBluetoothFilter optional Chrome 67+Some criteria to filter the list of returned bluetooth devices. If the filter is not set or set to {}, returned device list will contain all bluetooth devices. Right now this is only supported in ChromeOS, for other platforms, a full list is returned.
- 
    callbackfunction optional The callbackparameter looks like:(deviceInfos: Device[]) => void - 
    deviceInfosDevice[] Array of object containing device information. 
 
- 
    
Returns
- 
            Promise<Device[]> Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
startDiscovery()
chrome.bluetooth.startDiscovery(
callback?: function,
): Promise<void>
Start discovery. Newly discovered devices will be returned via the onDeviceAdded event. Previously discovered devices already known to the adapter must be obtained using getDevices and will only be updated using the onDeviceChanged event if information about them changes.
Discovery will fail to start if this application has already called startDiscovery. Discovery can be resource intensive: stopDiscovery should be called as soon as possible.
Parameters
- 
    callbackfunction optional The callbackparameter looks like:() => void 
Returns
- 
            Promise<void> Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
stopDiscovery()
chrome.bluetooth.stopDiscovery(
callback?: function,
): Promise<void>
Stop discovery.
Parameters
- 
    callbackfunction optional The callbackparameter looks like:() => void 
Returns
- 
            Promise<void> Chrome 91+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
Events
onAdapterStateChanged
chrome.bluetooth.onAdapterStateChanged.addListener(
callback: function,
)
Fired when the state of the Bluetooth adapter changes.
Parameters
- 
    callbackfunction The callbackparameter looks like:(state: AdapterState) => void - 
    state
 
- 
    
onDeviceAdded
chrome.bluetooth.onDeviceAdded.addListener(
callback: function,
)
Fired when information about a new Bluetooth device is available.
Parameters
- 
    callbackfunction The callbackparameter looks like:(device: Device) => void - 
    device
 
- 
    
onDeviceChanged
chrome.bluetooth.onDeviceChanged.addListener(
callback: function,
)
Fired when information about a known Bluetooth device has changed.
Parameters
- 
    callbackfunction The callbackparameter looks like:(device: Device) => void - 
    device
 
- 
    
onDeviceRemoved
chrome.bluetooth.onDeviceRemoved.addListener(
callback: function,
)
Fired when a Bluetooth device that was previously discovered has been out of range for long enough to be considered unavailable again, and when a paired device is removed.