BluetoothGattCharacteristic

public class BluetoothGattCharacteristic
extends Object implements Parcelable

java.lang.Object
   ↳ android.bluetooth.BluetoothGattCharacteristic


Represents a Bluetooth GATT Characteristic

A GATT characteristic is a basic data element used to construct a GATT service, BluetoothGattService. The characteristic contains a value as well as additional information and optional GATT descriptors, BluetoothGattDescriptor.

Summary

Constants

int FORMAT_FLOAT

Characteristic value format type float (32-bit float)

int FORMAT_SFLOAT

Characteristic value format type sfloat (16-bit float)

int FORMAT_SINT16

Characteristic value format type sint16

int FORMAT_SINT32

Characteristic value format type sint32

int FORMAT_SINT8

Characteristic value format type sint8

int FORMAT_UINT16

Characteristic value format type uint16

int FORMAT_UINT32

Characteristic value format type uint32

int FORMAT_UINT8

Characteristic value format type uint8

int PERMISSION_READ

Characteristic read permission

int PERMISSION_READ_ENCRYPTED

Characteristic permission: Allow encrypted read operations

int PERMISSION_READ_ENCRYPTED_MITM

Characteristic permission: Allow reading with person-in-the-middle protection

int PERMISSION_WRITE

Characteristic write permission

int PERMISSION_WRITE_ENCRYPTED

Characteristic permission: Allow encrypted writes

int PERMISSION_WRITE_ENCRYPTED_MITM

Characteristic permission: Allow encrypted writes with person-in-the-middle protection

int PERMISSION_WRITE_SIGNED

Characteristic permission: Allow signed write operations

int PERMISSION_WRITE_SIGNED_MITM

Characteristic permission: Allow signed write operations with person-in-the-middle protection

int PROPERTY_BROADCAST

Characteristic property: Characteristic is broadcastable.

int PROPERTY_EXTENDED_PROPS

Characteristic property: Characteristic has extended properties

int PROPERTY_INDICATE

Characteristic property: Characteristic supports indication

int PROPERTY_NOTIFY

Characteristic property: Characteristic supports notification

int PROPERTY_READ

Characteristic property: Characteristic is readable.

int PROPERTY_SIGNED_WRITE

Characteristic property: Characteristic supports write with signature

int PROPERTY_WRITE

Characteristic property: Characteristic can be written.

int PROPERTY_WRITE_NO_RESPONSE

Characteristic property: Characteristic can be written without response.

int WRITE_TYPE_DEFAULT

Write characteristic, requesting acknowledgement by the remote device

int WRITE_TYPE_NO_RESPONSE

Write characteristic without requiring a response by the remote device

int WRITE_TYPE_SIGNED

Write characteristic including authentication signature

Inherited constants

Fields

public static final Creator<BluetoothGattCharacteristic> CREATOR

protected List<BluetoothGattDescriptor> mDescriptors

List of descriptors included in this characteristic.

Public constructors

BluetoothGattCharacteristic(UUID uuid, int properties, int permissions)

Create a new BluetoothGattCharacteristic.

Public methods

boolean addDescriptor(BluetoothGattDescriptor descriptor)

Adds a descriptor to this characteristic.

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

BluetoothGattDescriptor getDescriptor(UUID uuid)

Returns a descriptor with a given UUID out of the list of descriptors for this characteristic.

List<BluetoothGattDescriptor> getDescriptors()

Returns a list of descriptors for this characteristic.

Float getFloatValue(int formatType, int offset)

This method was deprecated in API level 33. Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) to get the characteristic value

int getInstanceId()

Returns the instance ID for this characteristic.

Integer getIntValue(int formatType, int offset)

This method was deprecated in API level 33. Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) to get the characteristic value

int getPermissions()

Returns the permissions for this characteristic.

int getProperties()

Returns the properties of this characteristic.

BluetoothGattService getService()

Returns the service this characteristic belongs to.

String getStringValue(int offset)

This method was deprecated in API level 33. Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) to get the characteristic value

UUID getUuid()

Returns the UUID of this characteristic

byte[] getValue()

This method was deprecated in API level 33. Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) instead

int getWriteType()

Gets the write type for this characteristic.

boolean setValue(String value)

This method was deprecated in API level 33. Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

boolean setValue(int value, int formatType, int offset)

This method was deprecated in API level 33. Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

boolean setValue(byte[] value)

This method was deprecated in API level 33. Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

boolean setValue(int mantissa, int exponent, int formatType, int offset)

This method was deprecated in API level 33. Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

void setWriteType(int writeType)

Set the write type for this characteristic

Setting the write type of a characteristic determines how the BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int) function write this characteristic.

void writeToParcel(Parcel out, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

FORMAT_FLOAT

Added in API level 18
public static final int FORMAT_FLOAT

Characteristic value format type float (32-bit float)

Constant Value: 52 (0x00000034)

FORMAT_SFLOAT

Added in API level 18
public static final int FORMAT_SFLOAT

Characteristic value format type sfloat (16-bit float)

Constant Value: 50 (0x00000032)

FORMAT_SINT16

Added in API level 18
public static final int FORMAT_SINT16

Characteristic value format type sint16

Constant Value: 34 (0x00000022)

FORMAT_SINT32

Added in API level 18
public static final int FORMAT_SINT32

Characteristic value format type sint32

Constant Value: 36 (0x00000024)

FORMAT_SINT8

Added in API level 18
public static final int FORMAT_SINT8

Characteristic value format type sint8

Constant Value: 33 (0x00000021)

FORMAT_UINT16

Added in API level 18
public static final int FORMAT_UINT16

Characteristic value format type uint16

Constant Value: 18 (0x00000012)

FORMAT_UINT32

Added in API level 18
public static final int FORMAT_UINT32

Characteristic value format type uint32

Constant Value: 20 (0x00000014)

FORMAT_UINT8

Added in API level 18
public static final int FORMAT_UINT8

Characteristic value format type uint8

Constant Value: 17 (0x00000011)

PERMISSION_READ

Added in API level 18
public static final int PERMISSION_READ

Characteristic read permission

Constant Value: 1 (0x00000001)

PERMISSION_READ_ENCRYPTED

Added in API level 18
public static final int PERMISSION_READ_ENCRYPTED

Characteristic permission: Allow encrypted read operations

Constant Value: 2 (0x00000002)

PERMISSION_READ_ENCRYPTED_MITM

Added in API level 18
public static final int PERMISSION_READ_ENCRYPTED_MITM

Characteristic permission: Allow reading with person-in-the-middle protection

Constant Value: 4 (0x00000004)

PERMISSION_WRITE

Added in API level 18
public static final int PERMISSION_WRITE

Characteristic write permission

Constant Value: 16 (0x00000010)

PERMISSION_WRITE_ENCRYPTED

Added in API level 18
public static final int PERMISSION_WRITE_ENCRYPTED

Characteristic permission: Allow encrypted writes

Constant Value: 32 (0x00000020)

PERMISSION_WRITE_ENCRYPTED_MITM

Added in API level 18
public static final int PERMISSION_WRITE_ENCRYPTED_MITM

Characteristic permission: Allow encrypted writes with person-in-the-middle protection

Constant Value: 64 (0x00000040)

PERMISSION_WRITE_SIGNED

Added in API level 18
public static final int PERMISSION_WRITE_SIGNED

Characteristic permission: Allow signed write operations

Constant Value: 128 (0x00000080)

PERMISSION_WRITE_SIGNED_MITM

Added in API level 18
public static final int PERMISSION_WRITE_SIGNED_MITM

Characteristic permission: Allow signed write operations with person-in-the-middle protection

Constant Value: 256 (0x00000100)

PROPERTY_BROADCAST

Added in API level 18
public static final int PROPERTY_BROADCAST

Characteristic property: Characteristic is broadcastable.

Constant Value: 1 (0x00000001)

PROPERTY_EXTENDED_PROPS

Added in API level 18
public static final int PROPERTY_EXTENDED_PROPS

Characteristic property: Characteristic has extended properties

Constant Value: 128 (0x00000080)

PROPERTY_INDICATE

Added in API level 18
public static final int PROPERTY_INDICATE

Characteristic property: Characteristic supports indication

Constant Value: 32 (0x00000020)

PROPERTY_NOTIFY

Added in API level 18
public static final int PROPERTY_NOTIFY

Characteristic property: Characteristic supports notification

Constant Value: 16 (0x00000010)

PROPERTY_READ

Added in API level 18
public static final int PROPERTY_READ

Characteristic property: Characteristic is readable.

Constant Value: 2 (0x00000002)

PROPERTY_SIGNED_WRITE

Added in API level 18
public static final int PROPERTY_SIGNED_WRITE

Characteristic property: Characteristic supports write with signature

Constant Value: 64 (0x00000040)

PROPERTY_WRITE

Added in API level 18
public static final int PROPERTY_WRITE

Characteristic property: Characteristic can be written.

Constant Value: 8 (0x00000008)

PROPERTY_WRITE_NO_RESPONSE

Added in API level 18
public static final int PROPERTY_WRITE_NO_RESPONSE

Characteristic property: Characteristic can be written without response.

Constant Value: 4 (0x00000004)

WRITE_TYPE_DEFAULT

Added in API level 18
public static final int WRITE_TYPE_DEFAULT

Write characteristic, requesting acknowledgement by the remote device

Constant Value: 2 (0x00000002)

WRITE_TYPE_NO_RESPONSE

Added in API level 18
public static final int WRITE_TYPE_NO_RESPONSE

Write characteristic without requiring a response by the remote device

Constant Value: 1 (0x00000001)

WRITE_TYPE_SIGNED

Added in API level 18
public static final int WRITE_TYPE_SIGNED

Write characteristic including authentication signature

Constant Value: 4 (0x00000004)

Fields

CREATOR

Added in API level 24
public static final Creator<BluetoothGattCharacteristic> CREATOR

mDescriptors

Added in API level 18
protected List<BluetoothGattDescriptor> mDescriptors

List of descriptors included in this characteristic.

Public constructors

BluetoothGattCharacteristic

Added in API level 18
public BluetoothGattCharacteristic (UUID uuid, 
                int properties, 
                int permissions)

Create a new BluetoothGattCharacteristic.

Parameters
uuid UUID: The UUID for this characteristic

properties int: Properties of this characteristic

permissions int: Permissions for this characteristic

Public methods

addDescriptor

Added in API level 18
public boolean addDescriptor (BluetoothGattDescriptor descriptor)

Adds a descriptor to this characteristic.

Parameters
descriptor BluetoothGattDescriptor: Descriptor to be added to this characteristic.

Returns
boolean true, if the descriptor was added to the characteristic

describeContents

Added in API level 24
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

getDescriptor

Added in API level 18
public BluetoothGattDescriptor getDescriptor (UUID uuid)

Returns a descriptor with a given UUID out of the list of descriptors for this characteristic.

Parameters
uuid UUID

Returns
BluetoothGattDescriptor GATT descriptor object or null if no descriptor with the given UUID was found.

getDescriptors

Added in API level 18
public List<BluetoothGattDescriptor> getDescriptors ()

Returns a list of descriptors for this characteristic.

Returns
List<BluetoothGattDescriptor> Descriptors for this characteristic

getFloatValue

Added in API level 18
Deprecated in API level 33
public Float getFloatValue (int formatType, 
                int offset)

This method was deprecated in API level 33.
Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) to get the characteristic value

Return the stored value of this characteristic.

See getValue() for details.

Parameters
formatType int: The format type used to interpret the characteristic value.

offset int: Offset at which the float value can be found.

Returns
Float Cached value of the characteristic at a given offset or null if the requested offset exceeds the value size.

getInstanceId

Added in API level 18
public int getInstanceId ()

Returns the instance ID for this characteristic.

If a remote device offers multiple characteristics with the same UUID, the instance ID is used to distuinguish between characteristics.

Returns
int Instance ID of this characteristic

getIntValue

Added in API level 18
Deprecated in API level 33
public Integer getIntValue (int formatType, 
                int offset)

This method was deprecated in API level 33.
Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) to get the characteristic value

Return the stored value of this characteristic.

The formatType parameter determines how the characteristic value is to be interpreted. For example, setting formatType to FORMAT_UINT16 specifies that the first two bytes of the characteristic value at the given offset are interpreted to generate the return value.

Parameters
formatType int: The format type used to interpret the characteristic value.

offset int: Offset at which the integer value can be found.

Returns
Integer Cached value of the characteristic or null of offset exceeds value size.

getPermissions

Added in API level 18
public int getPermissions ()

Returns the permissions for this characteristic.

Returns
int Permissions of this characteristic

getProperties

Added in API level 18
public int getProperties ()

Returns the properties of this characteristic.

The properties contain a bit mask of property flags indicating the features of this characteristic.

Returns
int Properties of this characteristic

getService

Added in API level 18
public BluetoothGattService getService ()

Returns the service this characteristic belongs to.

Returns
BluetoothGattService The associated service

getStringValue

Added in API level 18
Deprecated in API level 33
public String getStringValue (int offset)

This method was deprecated in API level 33.
Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) to get the characteristic value

Return the stored value of this characteristic.

See getValue() for details.

Parameters
offset int: Offset at which the string value can be found.

Returns
String Cached value of the characteristic

getUuid

Added in API level 18
public UUID getUuid ()

Returns the UUID of this characteristic

Returns
UUID UUID of this characteristic

getValue

Added in API level 18
Deprecated in API level 33
public byte[] getValue ()

This method was deprecated in API level 33.
Use BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic) instead

Get the stored value for this characteristic.

This function returns the stored value for this characteristic as retrieved by calling BluetoothGatt#readCharacteristic. The cached value of the characteristic is updated as a result of a read characteristic operation or if a characteristic update notification has been received.

Returns
byte[] Cached value of the characteristic

getWriteType

Added in API level 18
public int getWriteType ()

Gets the write type for this characteristic.

Returns
int Write type for this characteristic

setValue

Added in API level 18
Deprecated in API level 33
public boolean setValue (String value)

This method was deprecated in API level 33.
Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

Set the locally stored value of this characteristic.

See setValue(byte[]) for details.

Parameters
value String: New value for this characteristic

Returns
boolean true if the locally stored value has been set

setValue

Added in API level 18
Deprecated in API level 33
public boolean setValue (int value, 
                int formatType, 
                int offset)

This method was deprecated in API level 33.
Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

Set the locally stored value of this characteristic.

See setValue(byte[]) for details.

Parameters
value int: New value for this characteristic

formatType int: Integer format type used to transform the value parameter

offset int: Offset at which the value should be placed

Returns
boolean true if the locally stored value has been set

setValue

Added in API level 18
Deprecated in API level 33
public boolean setValue (byte[] value)

This method was deprecated in API level 33.
Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

Updates the locally stored value of this characteristic.

This function modifies the locally stored cached value of this characteristic. To send the value to the remote device, call BluetoothGatt#writeCharacteristic to send the value to the remote device.

Parameters
value byte: New value for this characteristic

Returns
boolean true if the locally stored value has been set, false if the requested value could not be stored locally.

setValue

Added in API level 18
Deprecated in API level 33
public boolean setValue (int mantissa, 
                int exponent, 
                int formatType, 
                int offset)

This method was deprecated in API level 33.
Pass the characteristic value directly into BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int)

Set the locally stored value of this characteristic.

See setValue(byte[]) for details.

Parameters
mantissa int: Mantissa for this characteristic

exponent int: exponent value for this characteristic

formatType int: Float format type used to transform the value parameter

offset int: Offset at which the value should be placed

Returns
boolean true if the locally stored value has been set

setWriteType

Added in API level 18
public void setWriteType (int writeType)

Set the write type for this characteristic

Setting the write type of a characteristic determines how the BluetoothGatt.writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic, byte[], int) function write this characteristic.

Parameters
writeType int: The write type to for this characteristic. Can be one of: WRITE_TYPE_DEFAULT, WRITE_TYPE_NO_RESPONSE or WRITE_TYPE_SIGNED.

writeToParcel

Added in API level 24
public void writeToParcel (Parcel out, 
                int flags)

Flatten this object in to a Parcel.

Parameters
out Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES