我开始为Zebra MC9300扫描仪开发Android应用程序,并遇到了我猜测是配置问题,但作为Zebra和Android开发的新手,我有点不知所措。
我开始使用https://github.com/darryncampbell/DataWedge-GettingStarted-Samples的样本和Kotlin代码来处理Intent
似乎是这个块:
private fun displayScanResult(scanIntent: Intent) {
val decodedSource =
scanIntent.getStringExtra(resources.getString(R.string.datawedge_intent_key_source))
val decodedData =
scanIntent.getStringExtra(resources.getString(R.string.datawedge_intent_key_data))
val decodedLabelType =
scanIntent.getStringExtra(resources.getString(R.string.datawedge_intent_key_label_type))
val scan = "$decodedData [$decodedLabelType]nn"
val output = findViewById<TextView>(R.id.txtOutput)
output.text = scan + output.text
}
这似乎输出什么扫描作为原始文本在这个应用程序中,但我的问题似乎是围绕在这里的非打印字符为中心。使用我们需要扫描的实际条形码(DATAMTRIX),屏幕上的输出如下:
01208126080300201726
073110W21H171[X]3024
这里的[X]是似乎出现的非打印字符。通过各种搜索,我能够偶然发现这个,但它似乎没有为我做任何事情:https://supportcommunity.zebra.com/s/article/DataWedge-Android-Search-and-Remove-Group-Separator?language=en_US。最终目标(最好是通过intent)是像这样接收上述内容:
01: 20812608030020
17: 260731
10: W21H171
30: 24
根据与我的销售代表的对话,DataWedge应该允许我这样做,但即使使用键盘输出,我能得到的最好的结果是17
和10
的值-30
之前的非打印字符(用于数量)似乎打破了它,因为它不会显示在这个示例应用程序或DWDemo上,这是预装在扫描仪上的。
有没有人能给我指出Zebra/DataWedge意图的正确方向,并让它解析出扫描的所有元素,并像上面那样将它们分解?如果intents不能做到这一点(因为DataWedge应该为我处理自动解析),我不反对键盘输出,但现在它似乎不能给我数量字段。
谢谢!
在与我们的销售代表和他们的一名工程师反复讨论后,发现这不能工作的原因是斑马技术的DataWedge平台有一个bug——它应该自动完成我们上面所追求的工作,但由于那个bug,它没有。