@NonNull
	byte[] getData(@IntRange(from = 23, to = 517) final int mtu) {
		if (dataSplitter == null || data == null) {
			complete = true;
			return data != null ? data : new byte[] {};
		}

		// Max length of read response is ATT_MTU - 1 (opcode).
		final int maxLength = mtu - 1;

		byte[] chunk = nextChunk;
		// Get the first chunk.
		if (chunk == null) {
			chunk = dataSplitter.chunk(data, count, maxLength);
		}
		// If there's something to send, check if there are any more packets to be sent later.
		if (chunk != null) {
			nextChunk = dataSplitter.chunk(data, count + 1, maxLength);
		}
		// If there's no next packet left, we are done.
		if (nextChunk == null) {
			complete = true;
		}
		return chunk != null ? chunk : new byte[] {};
	}
Returns the next chunk to be sent. If data splitter was not set the date returned may
be longer than MTU. Android will try to send them using Long Write sub-procedure if
write type is {@link BluetoothGattCharacteristic#WRITE_TYPE_DEFAULT}. Other write types
will cause the data to be truncated.

@param mtu the current MTU.
@return The next bytes to be sent.
ble/src/main/java/no/nordicsemi/android/ble/WaitForReadRequest.java