Web/API/Bluetooth/getAvailability

From Get docs

Secure contextThis feature is available only in secure contexts (HTTPS), in some or all supporting browsers.


This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


The getAvailability() method of Bluetooth interface of Web Bluetooth API interface exposes the Bluetooth capabilities of the current device. For a returns a Boolean which is true if the deveice has a Bluetooth adapter and false otherwise (unless user configured User Agent not to expose a real value).

Note: User might not allow use of Web Bluetooth API, even if getAvailability() returned true (navigator.bluetooth.requestDevice() might not resolve with a BluetoothDevice). Also, user can configure User Agent to return a fixed value instead of a real one.


Syntax

var readerPromise = Bluetooth.getAvailability();

Parameters

None.

Return value

A Promise that resolves with Boolean.

Exceptions

This method doesn't throw any exceptions.

Examples

The following snippet prints out a message in the console specifying wheter or not Bluetooth is supported:

navigator.bluetooth.getAvailability().then(available => {
  if (available)
      console.log("This device supports Bluetooth!");
  else
      console.log("Doh! Bluetooth is not supported");
});

Specifications

Specification Status Comment
Web BluetoothThe definition of 'getAvailability()' in that specification. Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

getAvailability

Experimental'

Chrome Full support 56

Notes'

Full support 56

Notes'

Notes' macOS only. Full support 56

Notes' Disabled'

Notes' Linux and versions of Windows earlier than 10. Disabled' From version 56: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled). To change preferences in Chrome, visit chrome://flags. Full support 70

Notes'

Notes' Windows 10.

Edge Full support ≤79

Notes'

Full support ≤79

Notes'

Notes' macOS only. Full support ≤79

Notes' Disabled'

Notes' Linux and versions of Windows earlier than 10. Disabled' From version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled). Full support ≤79

Notes'

Notes' Windows 10.

Firefox

No support No

IE

No support No

Opera Full support 43

Notes'

Full support 43

Notes'

Notes' macOS only. Full support 43

Notes' Disabled'

Notes' Linux and versions of Windows earlier than 10. Disabled' From version 43: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled). Full support 57

Notes'

Notes' Windows 10.

Safari

No support No

WebView Android

No support No

Chrome Android

Full support 56

Firefox Android

No support No

Opera Android

Full support 43

Safari iOS

No support No

Samsung Internet Android

Full support 6.0

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.
See implementation notes.'
See implementation notes.
User must explicitly enable this feature.'
User must explicitly enable this feature.