在基于swift的应用程序中,我必须使用设备摄像头以及LinePro5 (LP5)外部条形码扫描器来实现条形码扫描。在应用程序中,必须检查iPhone与LinePro5 ( LP5 )设备的连接状态,如果iPhone未连接LP5,则它必须打开iPhone摄像头,否则它将使用LP5进行扫描。我必须对任何UIButton执行的扫描都在应用程序屏幕上。
我的问题是,当我调用connect()方法时,"func connectionState( Int32)“方法调用和iPhone与LP5的连接状态从Connecting更改为Connected,然后在我能够使用LP5扫描之后,但当我执行扫描另一个条形码时,LP5没有扫描,相机打开。此外,当我扫描wring条形码,这是不期望的,然后重新扫描后,设备相机打开。这意味着连接状态以某种方式发生了变化。但每次“函数状态(connectionState:Int32)”都不会调用。
谁能告诉我如何在每次扫描操作前检查LP5设备的连接状态?或者告诉我上述问题的正确解决方案。
发布于 2018-05-09 02:54:52
选项1:在调用类中维护一个变量,该变量保存linea设备的状态,
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
}Option2:是否在每次尝试扫描新条形码时从库中调用lib.connect()方法?这反过来将调用connectionState(_ state: Int32)方法,您可以检查设备状态,看看它是否已连接。
这将执行trick.Cheers!
https://stackoverflow.com/questions/37043203
复制相似问题