1

在基于 swift 的应用程序中,我必须使用设备摄像头以及使用 Linea Pro 5 (LP5) 外部条码扫描仪来实现条码扫描。在应用程序中必须检查 iPhone 与 Linea Pro 5 (LP5) 设备的连接状态,如果 iPhone 未与 LP5 连接,则必须打开 iPhone 相机,否则它将使用 LP5 进行扫描。我必须对任何 UIButton 进行的扫描驻留在应用程序屏幕上。

我的问题是,当我调用 connect() 方法时,“func connectionState(state: Int32)”方法调用和 LP5 的 iPhone 连接状态从 Connecting 更改为 Connected,然后在我能够使用 LP5 进行扫描但当我执行扫描另一个条码时LP5 没有扫描并且相机打开。此外,当我扫描意外的条形码时,重新扫描后,设备摄像头会打开。这意味着连接状态以某种方式发生了变化。但每次“func connectionState(state: Int32)”都不会调用。

谁能告诉我如何在每次扫描操作之前检查 LP5 设备的连接状态。或者告诉我上述问题的正确解决方案。

4

1 回答 1

0

选项1:在调用类中维护一个变量,该变量保存linea pro设备的状态,

var lineaProState;

connectionState(_ state: Int32)在方法中为这个变量赋值

lineaProState = state;

然后在扫描商品/条形码之前,检查状态变量:

if(lineaProState==0)
                {
                    //disconnected...
                    //call the lib.conncet() method
                    lib.connect()
                }
                else if(lineaProState==1)
                {
                    //connecting...wait for connect to finish
                }
                else if(lineaProState==2)
                {
                    //connected..Proceed with scanning
                }

选项2:lib.connect()每次尝试扫描新条形码时都调用库中的方法?反过来,这将调用该connectionState(_ state: Int32)方法,您可以检查设备状态,是否已连接。

这会成功的。干杯!!!

于 2018-05-08T18:54:52.373 回答