Non-standard
This feature is not on a current W3C standards track, but it is supported on the Firefox OS platform. Although implementations may change in the future and it is not supported widely across browsers, it is suitable for use in code dedicated to Firefox OS apps.
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
[CheckPermissions="bluetooth"]
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);
};
Properties
BluetoothAdapter.addressRead only- A string representing the address of the device's adapter.
BluetoothAdapter.discoverableRead only- A boolean indicating if the device is discoverable (
true) or not (false) by other Bluetooth devices. BluetoothAdapter.discoveringRead only- A boolean indicating if the device's adapter is in the process of discovering (
true) or not (false) surrounding Bluetooth devices. BluetoothAdapter.gattServerRead only- Returns the
BluetoothGattServerto use to conduct GATT server operations on the local bluetooth adapter. Will returnnullif the adapter is not enabled. BluetoothAdapter.nameRead only- A string indicating the human readable name of the device's adapter.
BluetoothAdapter.pairingReqsRead only- Returns the
BluetoothPairingListenerobject containing the event handlers needed to response to different pairing types operations. BluetoothAdapter.stateRead only- Returns the state of the local bluetooth adapter.
Event Handlers
BluetoothAdapter.onattributechanged- A handler for the
attributechangedevent; it is triggered when one of the local bluetooth adapter's properties has changed BluetoothAdapter.ondevicepaired- A handler for the
devicepairedevent; it is triggered when a remote device gets paired with the local bluetooth adapter. BluetoothAdapter.ondeviceunpaired- A handler for the
deviceunpairedevent; it is triggered when a remote device gets unpaired from the local bluetooth adapter. BluetoothAdapter.onpairingaborted- A handler for the
pairingabortedevent; 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.classRead only- A number representing the Class of Device(CoD) field of the device's adapter.
BluetoothAdapter.discoverableTimeoutRead only- A number indicating how long (in seconds) the device remains discoverable.
BluetoothAdapter.devicesRead only- An
ArrayofBluetoothDeviceobject representing all the Bluetooth devices discovered in the area surrounding the device. BluetoothAdapter.uuidsRead only- An
Arrayof string, each of them representing the UUID of a Bluetooth service the device's adapter is able to provide.
Obsolete event handlers
BluetoothAdapter.ona2dpstatuschanged- A handler for the
a2dpstatuschangedevent; it is triggered when an A2DP connection status changes. BluetoothAdapter.ondevicefound- A handler for the
devicefoundevent; it is triggered when a Bluetooth device is found. BluetoothAdapter.onhfpstatuschanged- A handler for the
hfpstatuschangedevent; it is triggered when an HFP connection status changes. BluetoothAdapter.onpairedstatuschanged- A handler for the
pairedstatuschangedevent; it is triggered when a pairing process is completed. BluetoothAdapter.onrequestmediaplaystatus- A handler for the
requestmediaplaystatusevent; it is triggered when a remote Bluetooth device queries the current media play status. BluetoothAdapter.onscostatuschanged- A handler for the
scostatuschangedevent; it is triggered when a SCO connection status changes.
Methods
BluetoothAdapter.enable()- Enables the local bluetooth adapter.
BluetoothAdapter.disable()- Disables the local bluetooth adapter.
BluetoothAdapter.getPairedDevices()- Allows retrieving a full list of all devices paired with the device's adapter.
BluetoothAdapter.pair()- Allows to start pairing a remote device with the device's adapter.
BluetoothAdapter.setDiscoverable()- Allows to change the value of the
discoverableproperty. BluetoothAdapter.startDiscovery()- Allows the device's adapter to start seeking for remote devices.
BluetoothAdapter.startLeScan()- Instructs the device's adapter to start seeking for remote LE devices advertising given services.
BluetoothAdapter.setName()- Allows to change the value of the
nameproperty. BluetoothAdapter.stopDiscovery()- Allows the device's adapter to stop seeking for remote devices.
BluetoothAdapter.stopLeScan()- Instructs the device's adapter to stop scanning for remote LE devices.
BluetoothAdapter.unpair()- Allows to unpair a remote device from the device's adapter.
Obsolete methods
BluetoothAdapter.answerWaitingCall()- Allows HFP devices to answer a pending incoming call on a CDMA network.
BluetoothAdapter.confirmReceivingFile()- Allows to confirm reception of a file from a remote device.
BluetoothAdapter.connect()- Allows to connect the device to a remote device using a given Bluetooth profile.
BluetoothAdapter.connectSco()- Allows the device to enable the SCO connection to broadcast/listen audio to/from the remote devices it is connected to.
BluetoothAdapter.disconnect()- Allows to disconnect the device from a remote device for one or all Bluetooth profiles.
BluetoothAdapter.disconnectSco()- Allows the device to disable the SCO connection with the remote devices it is connected to.
BluetoothAdapter.getConnectedDevices()- Allows retrieving a full list of all devices connected to the device's adapter.
BluetoothAdapter.ignoreWaitingCall()- Allows HFP devices to dismiss a pending incoming call on a CDMA network.
BluetoothAdapter.isConnected()- Allows to know if the given Bluetooth service is connected or not .
BluetoothAdapter.isScoConnected()- Allows to know if the device is connected through a SCO connection with the remote devices it is connected to.
BluetoothAdapter.sendFile()- Allows to start sending a file to a given remote device.
BluetoothAdapter.sendMediaMetaData()- Allows to send metadata about a media to remote devices connected with the AVRCP profile.
BluetoothAdapter.sendMediaPlayStatus()- Allows to send the play status of the device to remote devices connected with the AVRCP profile.
BluetoothAdapter.setDiscoverableTimeout()- Allows to change the value of the
discoverableTimeoutproperty. BluetoothAdapter.setPairingConfirmation()- Allows to accept the pairing confirmation to pair the device's adapter with a remote device.
BluetoothAdapter.setPasskey()- Allows to define a pass key to pair the device's adapter with a remote device.
BluetoothAdapter.setPinCode()- Allows to define a pin code to pair the device's adapter with a remote device.
BluetoothAdapter.stopSendingFile()- Allows to stop sending a file to a given remote device.
BluetoothAdapter.toggleCalls()- Allows HFP devices to switch from one call to the other on a CDMA network.
Specifications
| 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
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | Not supported | Not supported | Not supported | Not supported | Not supported |
| Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|---|
Bluetooth 'v2' support: pairingReqs, state, onadapterremoved, gattServer, onattributechange, ondevicepaired, ondeviceunpaired, onpairingaborted, enable(), disable(), startLeScan(), stopLeScan() |
Not supported | Not supported | Not supported | 2.1 | Not supported | Not supported | Not supported | Not supported |
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() |
Not supported | Not supported | Not supported | 1.0.1 | Not supported | Not supported | Not supported | Not supported |
Â