@NonNull
	protected WriteRequest writeCharacteristic(@Nullable final BluetoothGattCharacteristic characteristic,
											   @Nullable final byte[] data, final int offset, final int length,
											   @WriteType final int writeType) {
		return Request.newWriteRequest(characteristic, data, offset, length, writeType)
				.setRequestHandler(requestHandler);
	}
Writes at most length bytes from offset at given data to the characteristic.
<p>
Use {@link WriteRequest#split() split()} or
{@link WriteRequest#split(DataSplitter) split(ValueSplitter)} on the returned
{@link WriteRequest} if data should be automatically split into multiple packets.
If the characteristic is null, the {@link Request#fail(FailCallback) fail(FailCallback)}
callback will be called.
<p>
The returned request must be either enqueued using {@link Request#enqueue()} for
asynchronous use, or awaited using await() in synchronous execution.

@param characteristic the characteristic to write to.
@param data           data to be written to the characteristic.
@param offset         index of the first byte to be sent.
@param length         number of bytes to be sent.
@param writeType      the write type which is to be used.
@return The request.
ble/src/main/java/no/nordicsemi/android/ble/BleManager.java