Zebra DataWedge намеревается использовать GS-128

Я начинаю разрабатывать приложение для Android для сканера Zebra MC9300 и сталкиваюсь с тем, что, как я предполагаю, является проблемой конфигурации, но, будучи новичком в разработке как для 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]\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. Конечная цель (предпочтительно через намерения) состояла бы в том, чтобы получить что-то вроде этого:

      01: 20812608030020
17: 260731
10: W21H171
30: 24

Основываясь на разговорах с моим торговым представителем, DataWedge должен позволить мне это сделать, но даже при использовании вывода с клавиатуры лучшее, что я могу получить, — это значения для17и10- этот непечатаемый символ перед30(для количества), кажется, ломает его, потому что он не будет отображаться ни в этом примере приложения, ни в DWDemo, который предварительно установлен на сканере.

Может ли кто-нибудь указать мне правильное направление для намерений с Zebra/DataWedge и заставить его анализировать все отсканированные элементы и разбивать их, как указано выше? Если намерения не могут этого сделать (поскольку DataWedge должен обрабатывать автоматический анализ для меня), я не против вывода с клавиатуры, но сейчас он не может дать мне это поле количества.

Спасибо!

1 ответ

После обсуждения с нашим торговым представителем и одним из их инженеров выясняется, что причина, по которой это не работает, связана с ошибкой в ​​​​платформе Zebra DataWedge — она должна автоматически делать то, что мы ищем выше, но из-за этого бага не было.

Другие вопросы по тегам