重要的
将cmbSDK颤振插件与MX设备一起使用是免费的,但如果您想使用摄像头设备(使用智能手机摄像头扫描),则需要从CMBDN.
读者仍然在没有许可证的情况下工作,但结果是随机掩盖的*字符。
它是免费注册的,您可以获得一个30天的试用许可证密钥。
获得密钥后,有两种方法可以在应用程序中使用。
CmbsdkFlutter.registerSDK(“SKD_KEY”);
探索插件用法的最佳方式是检查我们的演示应用程序。您可以从中下载我们的演示应用程序在这里。
简而言之,在你的项目中使用我们的插件的步骤如下:
导入的包:cmbsdk_flutter / cmbsdk_flutter.dart ';
开放主飞镖从演示应用程序检查此代码。我们的演示应用程序中的所有代码都有简短的描述。
cmbsdkflatter.startscanning().catcherror((错误,stacktrace)=>打印('$ {errermessage}'));
要获得扫描仪并运行,首先要做,就是打电话给loadScanner ()方法。它需要CmbsdkDeviceType参数。此方法不连接阅读器设备。我们需要打电话connect ()在回调中实际连接到读卡器设备
cmbsdkflitter . loadscanner (_deviceType).then((value) {cmbsdkflitter .connect().then((value){…}).catchError((error, stackTrace){…});});
/* @return -成功回调如果连接完成-错误回调如果连接被拒绝。这个回调中的error对象包含错误代码和错误消息*/
connect()方法的结果作为成功或错误回调返回
CmbsdkFlutter.connect(),然后((值){…}).catchError((error, stackTrace){…});
有一个事件监听器用于ReaderDevice的连接状态,即ConnectionStateChangedListener事件将在下面进行更详细的解释。
/* @return - success callback if disconnect is completed - error callback if disconnect is not successful。这个回调中的error对象包含错误代码和错误消息*/
正如有connect (),有一个断开()与之相反的方法connect ():
cmbsdkflutter.disconnect()。然后((value){...})。catchError((错误,stacktrace){...});
类似于connect (),断开()也引发了ConnectionStateChangedListener事件。
/* @return - success callback if scanning state is changed - error callback if scanning state is not changed这个回调中的error对象包含错误代码和错误消息*/
启动/停止扫描过程,我们使用这些方法。如果命令成功(扫描已经开始或停止),它们返回一个成功回调,或者返回一个错误回调(如果没有初始化活动的ReaderDevice或没有连接)。这些方法触发ScanningStateChangedListener.事件返回当前扫描状态(如果启动扫描进程为true,如果停止扫描进程为false)。
CmbsdkFlutter.startScanning(),然后((值){…}).catchError((error, stackTrace){…});
启动扫描仪并扫描条形码后,扫描结果将触发ReadResultReceivedListener事件。
/ * @return - 如果启用符号系统,则成功回调 - 如果未启用符号系统,则会错误回调。这个回调中的error对象包含错误代码和错误消息*/
一旦与Reader建立了连接,我们就可以通过调用SetyymbologyEnabled().它期望2个参数:一个CmbsdkSymbology,这是启用或禁用的符号和一个布尔为ON/OFF。
CmbsdkFlutter.setSymbologyEnabled (CmbsdkSymbology。.then((value) => print('DataMatrix enabled')) . catcherror ((error, stackTrace) => print('DataMatrix NOT enabled. '))$ {error.message} '));
/*@return-success callback,布尔值显示为符号启用或禁用-如果出现错误,则返回错误回调。此回调中的错误对象包含错误代码和错误消息*/
要检查是否启用了符号,我们使用isSymbologyEnabled ().它需要参数cmbsdksymbology。
cmbsdksymbol . issymbologyenabled (cmbsdksymbol .DataMatrix).then((值){if(值)print('DataMatrix enabled');else print('DataMatrix NOT enabled');}).catchError((error, stackTrace) => print('${error.message}'));
/*@return-success callback如果灯亮了-error callback如果出了问题。此回调中的错误对象包含错误代码和错误消息*/
如果我们想启用flash,我们可以使用setLightsOn().它期望一个布尔值参数并返回一个成功或错误回调。
CmbsdkFlutter.setLightsOn(true).catchError((error,stackTrace)=>print('${error.message}');
如果我们在扫描处于活动状态之前调用此函数,我们将为每个扫描会话设置亮初始状态。
/*@return-表示当前灯光状态的布尔值的成功回调-如果出现问题,则返回错误回调。此回调中的错误对象包含错误代码和错误消息*/
我们可以用isLightsOn()检查灯的状态,它返回一个带有当前灯状态的回调。
cmbsdkflutter.com islightson ().then((value) {if (value) print('Light is ON');else print('Light is OFF');}).catchError((error, stackTrace) => print('${error.message}'));
在使用相机设备作为条形码读取器时,将如何表现相机。
cmbsdkflutter.setCamerAmode(CMBSDkcamerAmode.NoAimer);
注意:在调用之前应该设置CameraModeloadScanner ()让它生效
这应该只在使用设备内置的相机进行扫描时使用(CmbsdkDeviceType.Camera)。
这个函数需要一个整型参数,它是我们想要启用的所有预览选项的OR-ed结果的结果。
CmbsdkFlutter.setPreviewOptions (CmbsdkPrevewiOption。NoZoomBtn | CmbsdkPrevewiOption.NoIllumBtn);
注意:在调用之前,应设置预览选项loadScanner ()让它生效
这应该只在使用设备内置的相机进行扫描时使用(CmbsdkDeviceType.Camera)。
setPreviewContainerPositionAndSize接受四个整型参数,分别是左上角坐标的X和Y值,以及预览容器大小的宽度和高度值。所有的数值都是设备屏幕的百分比。
CmbsdkFlutter.setPreviewContainerPositionAndSize(0、0100、50);//将设置预览为0,0和100%宽50%高
/* @return -成功回调,如果全屏设置-错误回调,如果出错。这个回调中的error对象包含错误代码和错误消息*/
这应该只在使用设备内置的相机进行扫描时使用(CmbsdkDeviceType.Camera)。
将摄影机预览设置为在全屏而不是局部视图中开始。
cmbsdkflutter.setPreviewContainerfullscreen().catchError((错误,stacktrace)=>打印('$ {erret.message}'));
/*@return-success callback if image result enabled-error callback if something出错。此回调中的错误对象包含错误代码和错误消息*/
用于启用/禁用图像结果类型。期望一个布尔参数。
cmbsdkflitter . enableimage (true) .catchError((error, stackTrace) => print('${error.message}'));
/*@return-success callback if svg result已启用-error callback if something出错。此回调中的错误对象包含错误代码和错误消息*/
用于启用/禁用SVG结果类型。期望一个布尔参数。
cmbsdkflitter . enableimagegraphics (true) .catchError((error, stackTrace) => print('${error.message}'));
/* @return -如果设置了解析器,返回成功回调-如果出现错误,返回错误回调。这个回调中的error对象包含错误代码和错误消息*/
启用或禁用对扫描条形码的解析。需要一个CmbsdkResultParser类型的参数。
cmbsdkflutter.setParser(cmbsdkresultparser.gs1).catcherror((错误,stacktrace)=>打印('$ {errormessage}'));
/ * @return - 如果编码被设置为成功回调 - 如果出现问题,则会回调。这个回调中的error对象包含错误代码和错误消息*/
设置readString结果类型的编码。需要一个CMBSDKREADSTRINGCODING类型的参数。
CmbsdkFlutter.setReadStringEncoding(CmbsdkReadStringEncoding.Utf8).catchError((error,stackTrace)=>print('${error.message}');
/* @return - success callback with value that represent the battery level - error callback if something went wrong。这个回调中的error对象包含错误代码和错误消息*/
方法显示所连接设备的电池电量。不接受任何论据。
cmbsdkflutter.com getdevicebatterylevel ().then((value) {print('电池级别是$value');}).catchError((error, stackTrace) => print('${error.message}'));
/ * @return - 具有int值的成功回调,表示当前可用性状态 - 如果出现问题,则会错误回调。这个回调中的error对象包含错误代码和错误消息*/
检查阅读器是否可用getAvailability ().
cmbsdkflutter.getavailability()。然后((可用性){if(可用性== cmbsdkavailability.available.index)打印('readerdevice可用');否则打印('readerdevice不可用');})。catchError((错误,stacktrace)=>打印('$ {erret.message}'));
/*@return-success callback,int值表示当前连接状态-如果出现错误,则返回错误回调。此回调中的错误对象包含错误代码和错误消息*/
如果需要获取当前连接状态,getConnectionState ()可以使用
cmbsdkfliter . getconnectionstate ().then((currentState) {if (currentState == CmbsdkConnectionState.Connected.index) print('ReaderDevice is connected');}).catchError((error, stackTrace) => print('${error.message}'));
/*@return-success callback返回已执行dmcc的结果值,如果出现问题,则返回error callback。此回调中的错误对象包含错误代码和错误消息*/
所有方法都可以用向读取器设备发送DMCC字符串替换。为此,我们可以使用我们的API方法sendCommand.它可以用命令字符串来完全控制Reader。DMCC字符串作为输入参数发送。
CmbsdkFlutter.sendCommand('GET DEVICE.TYPE')。然后((value)=>print('$value')).catchError((error,stackTrace)=>print('${error.message}');
仅适用于iOS。
用于创建用于MDM报告的身份验证凭据。它接受四个字符串参数:用户名、密码、clientID和clientSecret。
应在setMDMReportingEnabled之前调用。
可以找到更多关于MDM报告在这里
CmbsdkFlutter。creatatemdmauthcredentials ('username', 'password', 'clientID', 'clientSecret') .catchError((error, stackTrace) => print('${error.message}'));
仅适用于iOS。
拥有和操作许多可康生移动终端可能希望远程收集有关电池电量,电池运行状况,安装固件等的最新信息。
使用cmbSDK框架的iOS应用可以将附加的移动终端状态信息上报给MDM实例。这可以通过setMDMReportingEnabled方法启用,该方法接受一个布尔参数。
可以找到更多关于MDM报告在这里
cmbsdkflitter . setmdmreportingenabled (true) .catchError((error, stackTrace) => print('${error.message}'));
此侦听器仅在可用性发生变化时用于MXReader(例如:MX移动终端已连接或断开电缆,或已打开或关闭)。结果是一个包含可用性信息的int。
cmbsdkflutter.setavailabilityChangedListener((可用性){if(可用性== cmbsdkavailability.available.index)打印('readerdevice可用');});
cmbsdkflitter . setconnectionstatechangedlistener ((state) {if (state == CmbsdkConnectionState.Connected.index) print('ReaderDevice is connected');});
CmbsdkFlutter.setScanningStateChangedListener((扫描状态){if(扫描状态)打印('扫描已启动');});
CmbsdkFlutter.setReadResultReceivedListener((resultJSON){final MapresultMap=jsonDecode(resultJSON);});
resultJSON是一个JSON对象,其结构如下:
-xml:字符串表示读卡器设备以XML格式表示的完整结果
-结果:所有结果的json数组。如果您在这里使用多代码模式,您将找到主要结果和所有其他部分结果。
-子结果:JSON数组的所有部分结果(如果使用单个代码模式,则此数组将为空)
结果和子结果数组包含具有以下结构的项:
-符号论:检测到的条码符号的int表示
-symbologyString:检测到的条形码符号的字符串表示形式
-Readstring.:条码的字符串表示
-goodRead:bool,指示条形码是否已成功扫描
-ISGS1.:BOOL表示条形码是GS1还是没有
-parsedText:表示结果中已解析文本的字符串
-parsedJSON:表示从结果中以JSON格式解析的文本的字符串
-映像:表示来自上次检测到的帧的SVG图像的字符串
-形象base64字符串,包含最后检测帧的图像
-xml: XML格式的部分结果的字符串表示形式