Skip to content
No description, website, or topics provided.
TypeScript Java Swift Other
Branch: master
Clone or download
Latest commit 864fa1e Jul 22, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea add badge to readme Jul 17, 2019
android v0.0.1 Jul 17, 2019
dist/esm v0.0.1 Jul 17, 2019
ios initial Jun 18, 2019
src v0.0.1 Jul 17, 2019
.gitignore add gitignore Jun 18, 2019
.npmignore initial Jun 18, 2019
CapBluetoothLowEnergyClient.podspec initial Jun 18, 2019
LICENSE Create LICENSE Jul 22, 2019
package-lock.json initial Jun 18, 2019
package.json add callbacks to transform byte values Jul 4, 2019 add badge to readme Jul 17, 2019
rollup.config.js initial Jun 18, 2019
tsconfig.json adjustments Jul 10, 2019


npm version

A client implementation for interacting with Bluetooth Low Energy peripherals.

Supported platforms

  • Web
  • Android
  • iOS


Install the plugin via npm

npm install --save cap-bluetooth-low-energy-client

In your capacitor project, make sure to register the Android plugin in in the projects MainActivity as follows

import com.bleclient.plugin.BluetoothLEClient;

public class MainActivity extends BridgeActivity {
  public void onCreate(Bundle savedInstanceState) {

    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
import {Plugins} from "@capacitor/core";

const {BluetoothLEClient} = Plugins;

// something with plugin

API Documentation

Interface and type definitions can be found here.


isAvailable(): Promise<BluetoothGATTAvailabilityResult>

Check wheter your device supports Bluetooth Low Energy.

options none
returns Promise<BluetoothGattAvailabilityResult>


isEnabled(): Promise<BluetoothGATTEnabledResult>

Check whether or not Bluetooth is enabled on your device.

options none
returns Promise<BluetoothGATTEnabledResult>


enable(): Promise<BluetoothGATTEnableResult>

Enable Bluetooth on your device.

Note: This method is only available for Android devices at the moment. On other platforms (e.g. Web) the enable() method will simply resolve.

options none
returns Promise<BluetoothGATTEnableResult>


scan(options: BluetoothGATTScanOptions): Promise<BluetoothGATTScanResults>

Initiates a Bluetooth scan and returns a list of available devices to pair with.

Note: Filtering for specific service UUIDs does not work for Android at the moment. For Web usage, in order to be able to interact with a peripheral's services, one has to use filters when scanning.

options BluetoothGATTScanOptions
returns Promise<BluetoothGATTScanResults>


connect(options: BluetoothGATTConnectOptions): Promise<BluetoothGATTConnectResult>

Establish connection to a peripheral's GATTServer.

options BluetoothGATTConnectOptions
returns Promise<BluetoothGATTConnectResult>


disconnect(options: BluetoothGATTDisconnectOptions): Promise<BluetoothGATTDisconnectResult>

Disconnect from a peripheral's GATTServer.

options BluetoothGATTDisconnectOptions
returns Promise<BluetoothGATTDisconnectResult>


discover(options: BluetoothGATTServiceDiscoveryOptions): Promise<BluetoothGATTServiceDiscoveryResult>

Perform service discovery on a given Peripheral.

Note: This method does not need to be called in Browsers, since service discovery takes place implicitly.

options BluetoothGATTServiceDiscoveryOptions
returns Promise<BluetoothGATTServiceDiscoveryResult>


read(options: BluetoothGATTCharacteristicReadOptions): Promise<BluetoothGATTCharacteristicReadResult>

Read value of GATT-Characteristic.

options BluetoothGATTCharacteristicReadOptions
returns Promise<BluetoothGATTCharacteristicReadResult>


write(options: BluetoothGATTCharacteristicWriteOptions): Promise<BluetoothGATTCharacteristicWriteResult>

Write value of GATT-Characteristic.

options BluetoothGATTCharacteristicWriteOptions
returns Promise<BluetoothGATTCharacteristicWriteResult>


readDescriptor(options: BluetoothGATTDescriptorReadOptions): Promise<BluetoothGATTDescriptorReadResult>

Read value of GATT-Descriptor.

options BluetoothGATTDescriptorReadOptions
returns Promise<BluetoothGATTDescriptorReadResult>


writeDescriptor(options: BluetoothGATTDescriptorWriteOptions): Promise<BluetoothGATTDescriptorWriteResult>

Write value of GATT-Descriptor.

options BluetoothGATTDescriptorWriteOptions
returns Promise<BluetoothGATTDescriptorWriteResult>


enableNotifications(options: BluetoothGATTNotificationOptions): Promise<BluetoothGATTEnableNotificationsResult>

Be notified when the value of a GATT-Characteristic changes. In order to retrieve the changed value, one has to use an Event Listener. Thereby, the event name is the string representation of a GATT-Characteristic's Hexadecimal UUID.

const listener = BluetoothLEClient.addListener( eventName , (data) => {
    const {value} = data;
    //Do something with the data

options BluetoothGATTNotificationOptions
returns Promise<BluetoothGATTEnableNotificationsResult>


disableNotifications(options: BluetoothGATTNotificationOptions): Promise<BluetoothGATTDisableNotificationsResult>

Stops the propagation of value changes.

Additionally, the event listener has to be removed.


options BluetoothGATTNotificationOptions
returns Promise<BluetoothGATTDisableNotificationsResult>


getServices(options: GetServiceOptions): Promise<GetServiceResult>

Retrieves a list of available GATT-Services for a given peripheral's GATT-Server.

options GetServiceOptions
returns Promise<GetServiceResult>


getService(options: GetServiceOptions): Promise<GetServiceResult>

Retrieves a single GATT-Service, specified by UUID.

options GetServiceOptions
returns Promise<GetServiceResult>


getCharacteristics(options: GetCharacteristicOptions): Promise<GetCharacteristicResult>

Retrieves a list of available GATT-Characteristics for a given GATT-Service.

options GetCharacteristicOptions
returns Promise<GetCharacteristicResult>


getCharacteristic(options: GetCharacteristicOptions): Promise<GetCharacteristicResult>

Retrieves a single GATT-Characteristic, specified by UUID.

options GetCharacteristicOptions
returns Promise<GetCharacteristicResult>

You can’t perform that action at this time.