BluetoothAdapter (Firefox OS)

This API is available on Firefox OS for internal applications only.

The BluetoothAdapter interface of the Web Bluetooth API is used to handle all the operations requested by Bluetooth networks. A Bluetooth adapter is the physical interface which is used to interact with local Bluetooth device.

Interface overview

interface BluetoothAdapter: EventTarget
  [AvailableIn=CertifiedApps] readonly attribute DOMString address;
  [AvailableIn=CertifiedApps] readonly attribute BluetoothPairingListener pairingReqs; 
  readonly attribute BluetoothAdapterState state;
  readonly attribute DOMString name;
  readonly attribute boolean discoverable;
  readonly attribute boolean discovering;
  readonly attribute BluetoothGattServer? gattServer;

           attribute EventHandler onattributechanged;
           attribute EventHandler ondevicepaired;
           attribute EventHandler ondeviceunpaired;
           attribute EventHandler onpairingaborted;

  [NewObject, AvailableIn=CertifiedApps] Promise<void> enable();
  [NewObject, AvailableIn=CertifiedApps] Promise<void> disable();
  [NewObject, AvailableIn=CertifiedApps] Promise<void> setName(DOMString aName);
  [NewObject] Promise<void> setDiscoverable(boolean aDiscoverable);
  [NewObject] Promise<BluetoothDiscoveryHandle> startDiscovery();
  [NewObject] Promise<void> stopDiscovery();
  [NewObject] Promise<void> pair(DOMString aAddress);
  [NewObject] Promise<void> unpair(DOMString aAddress);
  sequence<BluetoothDevice> getPairedDevices();

  // BLE methods
  [NewObject] Promise<BluetoothDiscoveryHandle> startLeScan(sequence<DOMString> aServiceUuids);
  [NewObject] Promise<void> stopLeScan(BluetoothDiscoveryHandle aDiscoveryHandle);


BluetoothAdapter.address Read only
A string representing the address of the device's adapter.
BluetoothAdapter.discoverable Read only
A boolean indicating if the device is discoverable (true) or not (false) by other Bluetooth devices.
BluetoothAdapter.discovering Read only
A boolean indicating if the device's adapter is in the process of discovering (true) or not (false) surrounding Bluetooth devices.
BluetoothAdapter.gattServer Read only
Returns the BluetoothGattServer to use to conduct GATT server operations on the local bluetooth adapter. Will return null if the adapter is not enabled.
BluetoothAdapter.name Read only
A string indicating the human readable name of the device's adapter.
BluetoothAdapter.pairingReqs Read only
Returns the BluetoothPairingListener object containing the event handlers needed to response to  different pairing types operations.
BluetoothAdapter.state Read only
Returns the state of the local bluetooth adapter.

Event Handlers

A handler for the attributechanged event; it is triggered when one of the local bluetooth adapter's properties has changed
A handler for the devicepaired event; it is triggered when a remote device gets paired with the local bluetooth adapter.
A handler for the deviceunpaired event; it is triggered when a remote device gets unpaired from the local bluetooth adapter.
A handler for the pairingaborted event; it is triggered when pairing fails due to authentication failure, the remote device being down (bluetooth ACL becomes disconnected), or some kind of internal error.

Note: Because the BluetoothAdapter interface inherits from the EventTarget interface, all these events can be listened by using the addEventListener method.

Obsolete properties

BluetoothAdapter.class Read only
A number representing the Class of Device(CoD) field of the device's adapter.
BluetoothAdapter.discoverableTimeout Read only
A number indicating how long (in seconds) the device remains discoverable.
BluetoothAdapter.devices Read only
An Array of BluetoothDevice object representing all the Bluetooth devices discovered in the area surrounding the device.
BluetoothAdapter.uuids Read only
An Array of string, each of them representing the UUID of a Bluetooth service the device's adapter is able to provide.

Obsolete event handlers

A handler for the a2dpstatuschanged event; it is triggered when an A2DP connection status changes.
A handler for the devicefound event; it is triggered when a Bluetooth device is found.
A handler for the hfpstatuschanged event; it is triggered when an HFP connection status changes.
A handler for the pairedstatuschanged event; it is triggered when a pairing process is completed.
A handler for the requestmediaplaystatus event; it is triggered when a remote Bluetooth device queries the current media play status.
A handler for the scostatuschanged event; it is triggered when a SCO connection status changes.


Enables the local bluetooth adapter.
Disables the local bluetooth adapter.
Allows retrieving a full list of all devices paired with the device's adapter.
Allows to start pairing a remote device with the device's adapter.
Allows to change the value of the discoverable property.
Allows the device's adapter to start seeking for remote devices.
Instructs the device's adapter to start seeking for remote LE devices advertising given services.
Allows to change the value of the name property.
Allows the device's adapter to stop seeking for remote devices.
Instructs the device's adapter to stop scanning for remote LE devices.
Allows to unpair a remote device from the device's adapter.

Obsolete methods

Allows HFP devices to answer a pending incoming call on a CDMA network.
Allows to confirm reception of a file from a remote device.
Allows to connect the device to a remote device using a given Bluetooth profile.
Allows the device to enable the SCO connection to broadcast/listen audio to/from the remote devices it is connected to.
Allows to disconnect the device from a remote device for one or all Bluetooth profiles.
Allows the device to disable the SCO connection with the remote devices it is connected to.
Allows retrieving a full list of all devices connected to the device's adapter.
Allows HFP devices to dismiss a pending incoming call on a CDMA network.
Allows to know if the given Bluetooth service is connected or not .
Allows to know if the device is connected through a SCO connection with the remote devices it is connected to.
Allows to start sending a file to a given remote device.
Allows to send metadata about a media to remote devices connected with the AVRCP profile.
Allows to send the play status of the device to remote devices connected with the AVRCP profile.
Allows to change the value of the discoverableTimeout property.
Allows to accept the pairing confirmation to pair the device's adapter with a remote device.
Allows to define a pass key to pair the device's adapter with a remote device.
Allows to define a pin code to pair the device's adapter with a remote device.
Allows to stop sending a file to a given remote device.
Allows HFP devices to switch from one call to the other on a CDMA network.


Specification Status Comment
Web Bluetooth
The definition of 'BluetoothAdapter' in that specification.
Draft Rough draft; not part of any official specification yet. It should be discussed as part of the W3C's System Applications Working Group.

Browser Compatibility

Firefox OS 2.1 adds Bluetooth 'v2' support: pairingReqs, state, onadapterremoved, gattServer, onattributechange, ondevicepaired, ondeviceunpaired, onpairingaborted, enable(), disable(), startLeScan(), stopLeScan()

Firefox 1.0.1 Bluetooth initial support: address, discoverable, discovering, name, class, discoverableTimeout, devices, uuids, ona2dpstatuschanged, ondevicefound, onhfpstatuschanged, onpairedstatuschanged, onrequestmediaplaystatus, onscostatuschanged, setName(), setDiscoverable(), startDiscovery(), stopdiscovery(), pair(), unpair()getPairedDevices(), answerWaitingCall(), confirmReceivingFile(), connect(), connectSco(), disconnect(), disconnectSco(), getConnectedDevices(), ignoreWaitingCall(), isConnected(), isScoConnected(), sendFile(), sendMediaMetaData(), sendMediaPlayStatus(), setDiscoverableTimeout(), setPairingConformation(), setPasskey(), setPinCode(), stopSendingFile(), toggleCalls()

See also

Using the Web Bluetooth API

Document Tags and Contributors

 Contributors to this page: fscholz, chrisdavidmills, teoli, Jamin_Liu, eric30, Jeremie, Sheppy, kscarfone
 Last updated by: fscholz,