Android 使用ZXing输出条形码控制代码?

Android 使用ZXing输出条形码控制代码?,android,zxing,Android,Zxing,在不更改任何ZXing源代码的情况下,有没有办法在Android上使用ZXing在条形码中输出控制代码 编辑:我不想编辑源代码的原因是我想使用这个过程。如果我必须编辑源代码,那么我必须将整个项目嵌入到我的项目中 例如,我有一个GS1-128条形码,当前输出文本21417341123。相反,我希望看到类似于[startc][FNC1]21417341123[Stop]的内容 如果我能从扫描中得到原始数据,那也没问题。但“rawBytes”值仅用于数据(21417341123部分),不包括控制代码。

在不更改任何ZXing源代码的情况下,有没有办法在Android上使用ZXing在条形码中输出控制代码

编辑:我不想编辑源代码的原因是我想使用这个过程。如果我必须编辑源代码,那么我必须将整个项目嵌入到我的项目中

例如,我有一个GS1-128条形码,当前输出文本
21417341123
。相反,我希望看到类似于
[startc][FNC1]21417341123[Stop]
的内容

如果我能从扫描中得到原始数据,那也没问题。但“rawBytes”值仅用于数据(21417341123部分),不包括控制代码。我看到了这个问题,但解决方案是使用
getByteArrayExtra(“SCAN_RESULT_BYTE_SEGMENTS_0”)返回
null


如果不改变代码就无法做到这一点,那么我需要修改ZXing源代码。我只是想看看我是否可以在不修改源代码的情况下做我想做的事情。

通常当人们问这个问题时,他们谈论的是类似代码128格式的FNC代码。虽然FNC1根据规范被翻译为“]C1”或ASCII 29,但结果中没有可打印的表示形式。其他内容实际上与输出中的任何内容都不对应,因此不会产生任何字符

看起来你是在问“启动C”代码。这也不是条形码编码的字符串的一部分。它是一个内部标记,告诉它切换集合以解析条形码的其余部分

原始字节对于其他格式更有意义,因为在这些格式中,显然有一个底层字节表示,然后进一步翻译。对于代码128,它将提供条形码中找到的所有(非控制)代码,而不是解释的字符串。这不是你想要的


出于您的目的,您必须修改代码。我认为这只适用于某些人工用例。

结果中返回的原始字节是码字索引。码字所表示的字符或控制代码取决于激活的代码集


但是由于缺少起始代码,缓冲区实际上是无用的。我修改了它,使其包含开始字符以适合我的目的。

我做错了什么吗?我的票数接近,a-1。编辑:它似乎得到了“离题”的投票。我不认为这是离题的。在ZXing网站上,它明确表示要在这里发布问题。此外,这与编程有关。您是否有任何证据表明条形码扫描仪应用程序本身支持“控制代码”?您希望“控制代码”在输出中表现为什么?如果您希望它像您的问题中那样是一个字符串(
[Start C][FNC1]21417341123[Stop]
),那么您如何区分“控制代码”和字符
[
S
t
a
r
t
,等等。在条形码本身?这是一个确定的问题,只是可能不够具体。什么样的控制代码,您尝试过什么,等等@commonware:[Start C]是11010011100在code128条码中的表示形式。为了解码code128规范的任何条形码,阅读器需要支持控制代码。但是,读卡器不需要实际输出控制代码。我希望有一种方法,ZXing可以在本地做到这一点。谢谢你的回答。基本上,我正在尝试创建一个分析器。所以每一个字形(因为缺少更好的术语)都必须有一个表示。我知道绝大多数时候你不需要知道这些信息,但知道这些信息对我来说很有价值。例如,我注意到在Code128Reader中,我看到
switch(code){case code_FNC_1:if(convertFNC1){if(result.length()==0){result.append(“]C1”);
。但后来,它被从结果中删除。我可能会调整它,使其仍然输出。这看起来像旧代码…它输出ASCII 29。是的,这很有意义,您可以轻松地复制/更改代码,以便在每个符号上执行某些操作。我似乎找到了我要查找的内容。似乎我需要编辑一些阅读器。保留在您的(ZXing)中谢天谢地-如果我发布这个应用程序,我需要重新发布我编辑的代码,对吗?再次感谢您的项目和您的回答。您可以重新发布衍生作品,当然。Apache许可证2.0刚刚涵盖了这一点。提出这个问题后,我修改了Code128Reader类和result类,以适应新的类变量/参数称为分析。这将输出我正在寻找的所有控制代码。完成后我将与大家分享,但我还有很长的路要走(我想为其他读者做同样的事情)。嗨,蒂姆,我想知道你是否成功地修改了用于输出控制代码的代码。这是针对Android的,对吗?