【发布时间】:2022-12-14 12:43:04
【问题描述】:
我开始为 Zebra MC9300 扫描仪开发 Android 应用程序,遇到了我猜测的配置问题,但作为 Zebra 和 Android 开发的新手,我有点不知所措。
我开始使用来自 https://github.com/darryncampbell/DataWedge-GettingStarted-Samples 的示例,处理 Intent 的 Kotlin 代码似乎是这个块:
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]\n\n"
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。最终目标(最好通过 intents)是接收上面这样的东西:
01: 20812608030020
17: 260731
10: W21H171
30: 24
根据与我的销售代表的对话,DataWedge 应该允许我这样做,但即使使用键盘输出,我能得到的最好结果是 17 和 10 的值 - @987654329 之前的非打印字符@(用于数量)似乎破坏了它,因为它不会显示在此示例应用程序或扫描仪上预安装的 DWDemo 上。
谁能为 Zebra/DataWedge 的意图指出正确的方向,并让它解析出所有扫描的元素并像上面那样分解它们?如果意图不能做到这一点(因为 DataWedge 应该为我处理自动解析),我不反对键盘输出,但现在它似乎不能给我那个数量字段。
谢谢!
【问题讨论】:
标签: android kotlin datawedge zebra-scanners