BluetoothRemoteGATTCharacteristic
=================================

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

The `BluetoothRemoteGattCharacteristic` interface of the Web Bluetooth API represents a GATT Characteristic, which is a basic data element that provides further information about a peripheral's service.

EventTarget

BluetoothRemoteGATTCharacteristicInstance properties
-------------------

`BluetoothRemoteGATTCharacteristic.service` Read only  
Experimental

Returns the `BluetoothRemoteGATTService` this characteristic belongs to.

`BluetoothRemoteGATTCharacteristic.uuid` Read only  
Experimental

Returns a string containing the UUID of the characteristic, for example `'00002a37-0000-1000-8000-00805f9b34fb'` for the Heart Rate Measurement characteristic.

`BluetoothRemoteGATTCharacteristic.properties` Read only  
Experimental

Returns the properties of this characteristic.

`BluetoothRemoteGATTCharacteristic.value` Read only  
Experimental

The currently cached characteristic value. This value gets updated when the value of the characteristic is read or updated via a notification or indication.

### Events

`oncharacteristicvaluechanged` 
Experimental

Event handler for the `characteristicvaluechanged` event.

Instance methods
----------------

`BluetoothRemoteGATTCharacteristic.getDescriptor()` 
Experimental

Returns a `Promise` that resolves to the first `BluetoothRemoteGATTDescriptor` for a given descriptor UUID.

`BluetoothRemoteGATTCharacteristic.getDescriptors()` 
Experimental

Returns a `Promise` that resolves to an `Array` of all `BluetoothRemoteGATTDescriptor` objects for a given descriptor UUID.

`BluetoothRemoteGATTCharacteristic.readValue()` 
Experimental

Returns a `Promise` that resolves to an `DataView` holding a duplicate of the `value` property if it is available and supported. Otherwise it throws an error.

`BluetoothRemoteGATTCharacteristic.writeValue(value)` 
Deprecated

Sets the `value` property to the bytes contained in a given `ArrayBuffer`, calls `WriteCharacteristicValue`(*this*=`this`, *value=value*, *response*=`"optional"`), and returns the resulting `Promise`.

`BluetoothRemoteGATTCharacteristic.writeValueWithResponse(value)` 
Experimental

Sets the `value` property to the bytes contained in a given `ArrayBuffer`, calls `WriteCharacteristicValue`(*this*=`this`, *value=value*, *response*=`"required"`), and returns the resulting `Promise`.

`BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse(value)` 
Experimental

Sets the `value` property to the bytes contained in a given `ArrayBuffer`, calls `WriteCharacteristicValue`(*this*=`this`, *value=value*, *response*=`"never"`), and returns the resulting `Promise`.

`BluetoothRemoteGATTCharacteristic.startNotifications()` 
Experimental

Returns a `Promise` that resolves when `navigator.bluetooth` is added to the active notification context.

`BluetoothRemoteGATTCharacteristic.stopNotifications()` 
Experimental

Returns a `Promise` that resolves when `navigator.bluetooth` is removed from the active notification context.

Specifications
--------------

| Specification |
| --- |
| Web Bluetooth # bluetoothgattcharacteristic-interface |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.