java - 解析来自 PDF417 内置阅读器 Android 设备的输入
问题描述
首先,我正在学习编码。
我正在使用 Android Studio 3.1.3、Java、API 级别 22(适用于 Android OS 5.1)
我需要编写一个 Android 应用程序,该应用程序将捕获从 PDF417 读取的数据,这些数据位于我所在国家/地区的人们的身份证上。它是一个人员访问控制应用程序,因此您来到一个地方,他们会读取您的 ID 并获取一些保存在设备上的数据,以授权或拒绝访问该地方。它的离线应用程序可以将数据保存到本地 SQLite 数据库中。
为此,我使用的是 Newland MT6550 设备,它具有内置的 1D 和 2D Imager Scanner。因此该设备可以读取 PDF417 和各种其他条码(因此,我不需要创建阅读器应用程序)。
我需要将 PDF417 的输入解析为几个数据字符串,如名称、ID n°、日期和序列号。所有这些都以对我来说是未知格式(或编码?)的形式存储在 PDF417 中。
问题是,当我用扫描仪阅读 PDF417 时,它会在 EditText 上写入几个无法识别的字符(如菱形内的“?”以及中文或韩文字符),这是我获取代码输入的地方,我无法解析,也没有给我所有的数据。
有没有办法设置输入,所以它给了我可以使用的东西?也许是一个没有“?”的字符串 或者一个我可以读取并分离成我需要的数据字符串的 XML 文件。(我知道该怎么做)
TL;DR:我需要解析来自 PDF417 内置扫描仪 Android 设备的数据输入,将该输入捕获到我的应用程序中,并从中保存数据。
以下是结果数据的示例:
178023954111605108 GARC虬 CHL280618A02375463812 � PC1悇o@?h<}r皩z苝u祑偲歝頺b~L哖乺嵟e疂Q鋂o堡Rj_尯畲笋挽1]�:祪臇|甂醃暵洠燫嫻VM焤┫篟a耼觟ㄊEz硠.鮡〩�0m槺棷Φw碨莿M0�?Qじ9�絀ω挄� /聾,盼3裐?EABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghij
解决方案
联系 Newland,他们发送了更新的 SDK 手册,其中包括扫描仪的编码设置。更改编码我能够从 ID 中获取并正确解析数据。该应用程序已完成,我第一次为编码获得报酬!耶!
推荐阅读
- javascript - 具有双索引的Javascript数组
- spring-boot - Swagger 3 和 Java >= 9 拼图
- python-3.x - AttributeError:'CallbackContext'('Update')对象没有属性'message'
- javascript - 在javascript中通过引用更改对象
- python - How to filter rows with specified conditions in a dataframe and put them in a new dataframe?
- ruby-on-rails - Collection build method in Rails is destructive?
- javascript - 使用 Java 脚本获取 Css 计算样式但排除浏览器默认样式
- javascript - 为什么我在使用 OpenLayers 的两个弹出窗口中得到相同的文本
- algorithm - 如何证明这个算法的正确性?
- docker - docker-compose 从容器内部获取容器名称