Welcome What's new in Chrome extensions Getting started API Reference Samples
Welcome What's new in Chrome extensions Getting started API Reference Samples

chrome.bluetooth

This API is part of the deprecated Chrome Apps platform. Learn more about migrating your app.
  • Description

    Use the chrome.bluetooth API to connect to a Bluetooth device. All functions report failures via chrome.runtime.lastError.

  • Manifest Keys

    The following keys must be declared in the manifest to use this API.

    bluetooth

Summary

Types

AdapterState

Properties

  • address
    string

    The address of the adapter, in the format 'XX:XX:XX:XX:XX:XX'.

  • available
    boolean

    Indicates whether or not the adapter is available (i.e. enabled).

  • discovering
    boolean

    Indicates whether or not the adapter is currently discovering.

  • name
    string

    The human-readable name of the adapter.

  • powered
    boolean

    Indicates whether or not the adapter has power.

BluetoothFilter

Chrome 67+

Properties

  • filterType
    FilterType optional

    Type of filter to apply to the device list. Default is all.

  • limit
    number optional

    Maximum number of bluetoth devices to return. Default is 0 (no limit) if unspecified.

Device

Properties

  • address
    string

    The address of the device, in the format 'XX:XX:XX:XX:XX:XX'.

  • batteryPercentage
    number optional
    Chrome 77+

    The remaining battery of the device. TODO(https://crbug.com/973237): This field is only used by Chrome OS and it is different from others because it is not filled by the platform. In the future, when there is a unified Mojo service, this field will be moved to BluetoothDeviceInfo.

  • connectable
    boolean optional
    Chrome 48+

    Indicates whether the device is connectable.

  • connected
    boolean optional

    Indicates whether the device is currently connected to the system.

  • connecting
    boolean optional
    Chrome 48+

    Indicates whether the device is currently connecting to the system.

  • deviceClass
    number optional

    The class of the device, a bit-field defined by http://www.bluetooth.org/en-us/specification/assigned-numbers/baseband.

  • deviceId
    number optional
  • inquiryRssi
    number 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.

  • inquiryTxPower
    number 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.

  • name
    string optional

    The human-readable name of the device.

  • paired
    boolean optional

    Indicates whether or not the device is paired with the system.

  • productId
    number optional
  • transport
    Transport optional
    Chrome 76+

    The transport type of the bluetooth device.

  • type
    DeviceType optional

    The type of the device, if recognized by Chrome. This is obtained from the deviceClass field and only represents a small fraction of the possible device types. When in doubt you should use the deviceClass field directly.

  • uuids
    string[] 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.

  • vendorId
    number optional
  • vendorIdSource
    VendorIdSource optional

    The Device ID record of the device, where available.

DeviceType

Common device types recognized by Chrome.

Type

"computer", "phone", "modem", "audio", "carAudio", "video", "peripheral", "joystick", "gamepad", "keyboard", "mouse", "tablet", or "keyboardMouseCombo"

FilterType

Chrome 67+

Types for filtering bluetooth devices.

Type

"all", or "known"

Transport

Chrome 76+

Transport type of the bluetooth device.

Type

"invalid", "classic", "le", or "dual"

VendorIdSource

Allocation authorities for Vendor IDs.

Type

"bluetooth", or "usb"

Methods

getAdapterState

chrome.bluetooth.getAdapterState(
  callback?: function,
)
Promise

Get information about the Bluetooth adapter.

Parameters

  • callback
    function optional

    The callback parameter looks like: (adapterInfo: AdapterState) => void

    • adapterInfo

      Object containing the adapter information.

Returns

  • Promise<AdapterState>
    Pending

    This only returns a Promise when the callback parameter is not specified, and with MV3+. The type inside the Promise is the same as the 1st argument to callback.

getDevice

chrome.bluetooth.getDevice(
  deviceAddress: string,
  callback?: function,
)
Promise

Get information about a Bluetooth device known to the system.

Parameters

  • deviceAddress
    string

    Address of device to get.

  • callback
    function optional

    The callback parameter looks like: (deviceInfo: Device) => void

    • deviceInfo

      Object containing the device information.

Returns

  • Promise<Device>
    Pending

    This only returns a Promise when the callback parameter is not specified, and with MV3+. The type inside the Promise is the same as the 1st argument to callback.

getDevices

chrome.bluetooth.getDevices(
  filter?: BluetoothFilter,
  callback?: function,
)
Promise

Get a list of Bluetooth devices known to the system, including paired and recently discovered devices.

Parameters

  • filter
    BluetoothFilter 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.

  • callback
    function optional

    The callback parameter looks like: (deviceInfos: Device[]) => void

    • deviceInfos

      Array of object containing device information.

Returns

  • Promise<Device[]>
    Pending

    This only returns a Promise when the callback parameter is not specified, and with MV3+. The type inside the Promise is the same as the 1st argument to callback.

startDiscovery

chrome.bluetooth.startDiscovery(
  callback?: function,
)
Promise

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

  • callback
    function optional

    The callback parameter looks like: () => void

Returns

  • Promise<void>
    Pending

    This only returns a Promise when the callback parameter is not specified, and with MV3+. The type inside the Promise is the same as the 1st argument to callback.

stopDiscovery

chrome.bluetooth.stopDiscovery(
  callback?: function,
)
Promise

Stop discovery.

Parameters

  • callback
    function optional

    The callback parameter looks like: () => void

Returns

  • Promise<void>
    Pending

    This only returns a Promise when the callback parameter is not specified, and with MV3+. The type inside the Promise is the same as the 1st argument to callback.

Events

onAdapterStateChanged

chrome.bluetooth.onAdapterStateChanged.addListener(
  callback: function,
)

Fired when the state of the Bluetooth adapter changes.

Parameters

onDeviceAdded

chrome.bluetooth.onDeviceAdded.addListener(
  callback: function,
)

Fired when information about a new Bluetooth device is available.

Parameters

  • callback
    function

    The callback parameter looks like: (device: Device) => void

onDeviceChanged

chrome.bluetooth.onDeviceChanged.addListener(
  callback: function,
)

Fired when information about a known Bluetooth device has changed.

Parameters

  • callback
    function

    The callback parameter looks like: (device: Device) => void

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.

Parameters

  • callback
    function

    The callback parameter looks like: (device: Device) => void

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.