• iOS 蓝牙扫描枪扫描内容不正确


    背景

    在移动设备上,使用蓝牙扫描枪,相当于接入了一下外接键盘。我们的客户使用我们的App,并连接蓝牙扫码枪,将扫描的内容传输到我们的App中,App再做出对应的响应,举个例子,较为常见的应用场景就是,拣货员拿着扫码枪,扫描产品上的UPC码,然后在App中收到这个码,请求在这个码的相应信息,展示在App中。

    问题

    我们的客户比多,各个国家的都有,其中有一个客户是在西班牙,他们在使用扫码枪的时候,发现了一些扫描不准确的问题,例如

    条码内容是 ’X_ 123‘ 通过扫描后,App接收到的内容变成了 ’X?123‘;
    扫描 ‘A-B-C’ 变成了 ‘A’B’C’

    一些字符在扫码的时候就会发生变化。但是这种情况不是大量用户,而是个人用户有此问题。

    分析

    扫码内容不准确,可能跟键盘有关联,因为扫码枪就相当于一个外接键盘。

    开始我没有复现这个问题,后来我想用户是在西班牙,应该是使用的西班牙语,我将设备设置成了西班牙语再次复现,也没复现出来。后来我想用户使用的输入法应该是西班牙语的输入法,而我们一般使用的英语,于是我添加了一个西班牙语的输入法,之后复现了问题。

    解决

    查了查有关扫码枪的资料,Apple社区里都很少有相关的帖子。最后查了查键盘相关的找到了一个别人反馈的问题 https://discussions.apple.com/thread/250928656
    这个帖子反馈的是输入法的问题,输入法在输入的时候,匹配的语言比较杂乱。
    按照提示我对iOS设备做了一些键盘上的设置:
    go to Settings > General > Keyboards > Keyboards and remove all but the English one

    总结

    这可能是键盘智能提示相关的问题,当设置了太多的输入法之后,系统键盘难免出现一些输入提示上的问题。而扫码枪扫码的内容不准确,部分字符变成了其他内容,这可能一直以来就是一个bug。
    好在通过设置输入法可以避免这个问题,一般的我们也不会设置太多的输入法。

  • 相关阅读:
    偏微分方程的人工智能
    数据安全能力建设框架
    QT作业三
    [C++] Lambda表达式
    python 正则表达式(Regular Expression)基础学习笔记
    C++ 容器适配器
    # Kafka_深入探秘者(3):kafka 消费者
    GO编程实践:如何高效使用变量
    【无标题】
    springboot 获取参数
  • 原文地址:https://blog.csdn.net/Morris_/article/details/126813940