在基于swift的应用程序中,我必须使用设备相机实现条形码扫描以及使用Linea Pro 5(LP5)外部条形码扫描仪。 在应用程序必须检查与Linea Pro 5(LP5)设备的iPhone连接状态,如果iPhone没有与LP5连接,那么它必须打开iPhone相机,否则它将使用LP5扫描。我与任何UIButton的扫描都驻留在应用程序屏幕上。
我的问题是当我调用connect()方法时,“func connectionState(state:Int32)”方法调用和LP5的iPhone连接状态从连接变为连接然后我能够使用LP5进行扫描但是当我执行时扫描另一个条形码,LP5没有扫描,相机打开。此外,当我扫描不想要的拧条形码时,重新扫描后设备相机打开。这意味着连接状态以某种方式改变。但每次“func connectionState(state:Int32)”都不会调用。
任何人都可以告诉我如何在每次扫描操作之前检查LP5设备的连接状态。或者告诉我上述问题的正确解决方案。
答案 0 :(得分: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)
方法,您可以检查设备状态,是否已连接。
这样做就可以了。欢呼!!!