BluetoothCharacteristicProperties

Draft

This page is not complete.

Secure context

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

Experimental

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

The BluetoothCharacteristicProperties interface of the Web Bluetooth API provides the operations that are valid on the given BluetoothRemoteGATTCharacteristic. This interface is returned by calling BluetoothRemoteGATTCharacteristic.properties.

Properties

authenticatedSignedWritesRead only
Returns a boolean that is true if signed writing to the characteristic value is permitted.
broadcastRead only
Returns a boolean that is true if the broadcast of the characteristic value is permitted using the Server Characteristic Configuration Descriptor.
indicateRead only
Returns a boolean that is true if indications of the characteristic value with acknowledgement is permitted.
notifyRead only
Returns a boolean that is true if notifications of the characteristic value without acknowledgement is permitted.
readRead only
Returns a boolean that is true if the reading of the characteristic value is permitted.
reliableWriteRead only
Returns a boolean that is true if reliable writes to the characteristic is permitted.
writableAuxiliariesRead only
Returns a boolean that is true if reliable writes to the characteristic descriptor is permitted.
writeRead only
Returns a boolean that is true if the writing to the characteristic with response is permitted.
writeWithoutResponseRead only
Returns a boolean that is true if the writing to the characteristic without response is permitted.

Examples

The following example shows how tell if a GATT characteristic supports value change notifications.

let device = await navigator.bluetooth.requestDevice({
  filters: [{services: ['heart_rate']}]
});
let gatt = await device.gatt.connect();
let service = await gatt.getPrimaryService('heart_rate');
let characteristic = await service.getCharacteristic('heart_rate_measurement');
if (characteristic.properties.notify) {
  characteristic.addEventListener('characteristicvaluechanged',
      function(event) {
    console.log(`Received heart rate measurement: ${event.target.value}`);
  }
  await characteristic.startNotifications();
}

Specifications

Browser compatibility

BCD tables only load in the browser