If that were the case, it would indeed solve my problem. However, I've just re-tested to be sure, and the result from the getContents() method of IntentResult does not seem to contain an ASCII 29 (or any other marker) for the FNC1.
My test case:
http://www.morovia.com/free-online-barcode-generator/In barcode format, select GS1-128 (UCC/EAN-128).
For data to encode, input: (37)1234(21)5678
Leave all other fields at default. Click submit.
When I dump the data from getContents(), I see the characters with (decimal) values:
51, 55, 49, 50, 51, 52, 50, 49, 53, 54, 55, 56
corresponding to ASCII characters:
371234215678
When I dump the getRawBytes() data, I get (decimal) values:
102, 37, 12, 34, 102, 21, 56, 78, 45, 106
There, each "102" is an FNC1, the 45 is the checksum, the 106 is the stop marker and all the other values are two packed digits a la Code 128 CODE C.
I'm certainly open to the idea that I'm doing something wrong, but I'm fairly confident that those really are the results I'm seeing. (I've used two different data dumpers and the Eclipse debugger. I've also checked that I get the same results with actual printed barcodes from a real supplier.)