@NonNull
	protected final BluetoothGattCharacteristic sharedCharacteristic(@NonNull final UUID uuid,
																	 @CharacteristicProperties final int properties,
																	 @CharacteristicPermissions final int permissions,
																	 @Nullable final Data initialValue,
																	 final BluetoothGattDescriptor... descriptors) {
		return sharedCharacteristic(uuid, properties, permissions, initialValue != null ? initialValue.getValue() : null, descriptors);
	}
A helper method that creates a characteristic with given UUID, properties and permissions.
Optionally, an initial value and a list of descriptors may be set.
<p>
The Client Characteristic Configuration Descriptor (CCCD) will be added automatically if
{@link BluetoothGattCharacteristic#PROPERTY_NOTIFY} or {@link BluetoothGattCharacteristic#PROPERTY_INDICATE}
was set, if not added explicitly in the descriptors list.
<p>
If {@link #reliableWrite()} was added as one of the descriptors or the Characteristic User
Description descriptor was created with any of write permissions
(see {@link #description(String, boolean)}) the
{@link BluetoothGattCharacteristic#PROPERTY_EXTENDED_PROPS} property will be added automatically.
<p>
The value of the characteristic is shared between clients. A value written by one of the
connected clients will be available for all other clients. To create a sandboxed characteristic,
use {@link #characteristic(UUID, int, int, byte[], BluetoothGattDescriptor...)} instead.

@param uuid The characteristic UUID.
@param properties The bit mask of characteristic properties. See {@link BluetoothGattCharacteristic}
                  for details.
@param permissions The bit mask or characteristic permissions. See {@link BluetoothGattCharacteristic}
                   for details.
@param initialValue The optional initial value of the characteristic.
@param descriptors The optional list of descriptors.
@return The characteristic.
ble/src/main/java/no/nordicsemi/android/ble/BleServerManager.java