重要的
使用cmbSDK颤振插件MX设备是免费的,但如果你想利用相机设备(扫描与智能手机相机),你需要从CMBDN.
Reader仍然可以在没有许可证的情况下工作,但是结果被随机地用*字符掩盖。
它是免费注册的,您可以获得一个30天的试用许可证密钥。
获得密钥后,有两种方法可用于应用程序。
CmbsdkFlutter.registerSDK(“SKD_KEY”);
最好的方法来探索插件的用法是检查我们的演示应用程序在这里。
简而言之,在你的项目中使用我们的插件的步骤如下:
导入“包:cmbsdk_flatter/cmbsdk_flatter.dart”;
开放main.dart从演示应用程序中检查此代码。我们的演示应用程序中的所有代码都有一个简短的描述。
cmbsdkflutter.com startscanning () .catchError((error, stackTrace) => print('${error.message}'));
要让扫描器启动并运行,首先要做的就是调用loadScanner()方法。它需要CmbsdkDeviceType参数。此方法不连接阅读器设备。我们需要打电话connect ()在回调中连接Reader设备
CmbsdkFlutter.loadScanner(_deviceType).then((值){CmbsdkFlutter.connect().then((值){…}).catchError((错误,堆栈跟踪){…});});
/*@return-连接完成时成功回调-连接被拒绝时错误回调。此回调中的错误对象包含错误代码和错误消息*/
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(),然后((值){…}).catchError((error, stackTrace){…});
类似于connect (),断开()也引发了ConnectionStateChangedListener事件。
/*@return-扫描状态更改时成功回调-扫描状态未更改时错误回调。此回调中的错误对象包含错误代码和错误消息*/
启动/停止扫描过程,我们使用这些方法。如果命令成功(扫描已经开始或停止),它们返回一个成功回调,或者返回一个错误回调(如果没有初始化活动的ReaderDevice或没有连接)。这些方法触发ScanningStateChangedListener事件返回当前扫描状态(如果扫描过程已启动,则为true;如果扫描过程已停止,则为false)。
CmbsdkFlutter.startScanning().then((值){…}).catchError((错误,堆栈跟踪){…});
启动扫描仪并扫描条形码后,扫描结果触发ReadResultReceivedListener事件。
/* @return -成功回调,如果启用符号-错误回调,如果没有启用符号。这个回调中的error对象包含错误代码和错误消息*/
一旦与阅读器建立了连接,我们就可以通过调用setSymbologyEnabled ().它期望2个参数:一个CmbsdkSymbology,这是启用或禁用的符号和一个布尔为ON/OFF。
CmbsdkFlutter.setSymbologyEnabled (CmbsdkSymbology。.then((value) => print('DataMatrix enabled')) . catcherror ((error, stackTrace) => print('DataMatrix NOT enabled. '))$ {error.message} '));
/* @return - success callback with Boolean value that show is symbol enabled or disabled - error callback if something went wrong。这个回调中的error对象包含错误代码和错误消息*/
要检查是否启用了符号,我们使用isSymbologyEnabled().它需要参数cmbsdksymbolology。
cmbsdksymbol . issymbologyenabled (cmbsdksymbol .DataMatrix).then((值){if(值)print('DataMatrix enabled');else print('DataMatrix NOT enabled');}).catchError((error, stackTrace) => print('${error.message}'));
/*如果灯打开,返回成功回调;如果出错,返回错误回调。这个回调中的error对象包含错误代码和错误消息*/
如果我们想启用闪光灯,我们可以使用setLightsOn (). 它需要一个布尔参数,并返回一个成功或错误回调。
cmbsdkflitter . setlightson (true) .catchError((error, stackTrace) => print('${error.message}'));
如果我们在扫描活动之前调用这个函数,我们将为每个扫描会话设置光初始状态。
/* @return -成功回调,Boolean值表示当前灯的状态-错误回调,如果出错。这个回调中的error对象包含错误代码和错误消息*/
我们可以使用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);
注意:PreviewOptions应该在我们调用之前设置loadScanner()让它生效
仅当使用设备的内置摄像头进行扫描(CmbsdkDeviceType.camera)时,才应使用此选项。
setPreviewContainerPositionAndSize接受四个整型参数,分别是左上角坐标的X和Y值,以及预览容器大小的宽度和高度值。所有的数值都是设备屏幕的百分比。
CmbsdkFlutter.setPreviewContainerPositionAndSize(0、0100、50);//将设置预览为0,0和100%宽50%高
/*@return-success callback如果设置了全屏-如果出现问题则返回错误。此回调中的错误对象包含错误代码和错误消息*/
仅当使用设备的内置摄像头进行扫描(CmbsdkDeviceType.camera)时,才应使用此选项。
将相机预览设置为全屏而不是局部视图。
cmbsdkflitter . setpreviewcontainerfullscreen () .catchError((error, stackTrace) => print('${error.message}'));
/* @return -成功回调,如果图像结果是启用的-错误回调,如果发生了错误。这个回调中的error对象包含错误代码和错误消息*/
用于启用/禁用图像结果类型。期望一个布尔参数。
cmbsdkflitter . enableimage (true) .catchError((error, stackTrace) => print('${error.message}'));
/* @return -如果启用SVG结果,返回成功回调-如果出错,返回错误回调。这个回调中的error对象包含错误代码和错误消息*/
用于启用/禁用svg结果类型。期望一个布尔参数。
cmbsdkflitter . enableimagegraphics (true) .catchError((error, stackTrace) => print('${error.message}'));
/* @return -如果设置了解析器,返回成功回调-如果出现错误,返回错误回调。这个回调中的error对象包含错误代码和错误消息*/
启用或禁用对扫描条形码的解析。需要一个CmbsdkResultParser类型的参数。
cmbsdkflitter . setparser (CmbsdkResultParser.Gs1) .catchError((error, stackTrace) => print('${error.message}'));
/* @return - success callback if encoding is set - error callback if something went wrong。这个回调中的error对象包含错误代码和错误消息*/
设置readString结果类型的编码。需要一个CmbsdkReadStringEncoding类型的参数。
cmbsdkflitter . setreadstringencoding (CmbsdkReadStringEncoding.Utf8) .catchError((error, stackTrace) => print('${error.message}'));
/*@return-success callback,其值表示电池电量-如果出现问题,则返回错误。此回调中的错误对象包含错误代码和错误消息*/
方法显示所连接设备的电池水平。不接受任何论点。
CmbsdkFlutter.getDeviceBatteryLevel().then((值){print($value');}).catchError((error,stackTrace)=>print('${error.message}');
/* @return -成功回调,int值表示当前可用性状态-错误回调,如果出错。这个回调中的error对象包含错误代码和错误消息*/
检查阅读器是否可用getAvailability().
cmbsdkflutter.com getavailability ().then((availability) {if (availability == cmbsdkavailability . availability .index) print('ReaderDevice is available');else print('ReaderDevice is NOT available');}).catchError((error, stackTrace) => print('${error.message}'));
/* @return -成功回调,int值表示当前的连接状态-错误回调,如果发生了错误。这个回调中的error对象包含错误代码和错误消息*/
如果需要获取当前连接状态,getConnectionState ()可以使用
CmbsdkFlutter.getConnectionState().then((currentState){if(currentState==CmbsdkConnectionState.Connected.index)打印('ReaderDevice已连接');}).catchError((error,stackTrace)=>print('${error.message}');
/*返回DMCC执行的结果值的成功回调-出错时返回错误回调。这个回调中的error对象包含错误代码和错误消息*/
所有的方法都可以用发送DMCC字符串到READER设备来代替。为此,我们可以使用API方法sendCommand. 它可以用来完全用命令字符串控制读卡器。DMCC字符串作为输入参数发送。
CmbsdkFlutter。sendCommand('GET DEVICE.TYPE') .then((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.com availabilitychangedlistener((可用性){if(可用性== cmbsdkavailability.com available.com index) print('ReaderDevice is available');});
CMBSDKlutter.setConnectionStateChangedListener((状态){if(状态==CmbsdkConnectionState.Connected.index)打印('ReaderDevice is Connected');});
cmbsdkflitter . setscanningstatechangedlistener ((scanningState) {if (scanningState) print('扫描启动');});
cmbsdkflutter.com setreadresultreceivedlistener ((resultJSON) {final Map resultMap = jsonDecode(resultJSON);});
resultJSON是具有以下结构的JSON对象:
-xml: XML格式的读取器设备的完整结果的字符串表示形式
-结果: json数组的所有结果。如果你在这里使用多代码模式,你会发现主要结果和所有其他部分结果。
-subResults: json数组的所有部分结果(如果使用单一代码模式,该数组将为空)
results和subResults数组包含以下结构项:
-符号学:检测到的条码符号的int表示
-symbologyString:检测到的条码符号的字符串表示形式
-readString:条形码的字符串表示法
-古德雷德:指示条码是否扫描成功的bool标记
-isGS1:指示条码是否为GS1的bool标记
-解析文本:字符串,表示从结果中解析的文本
-帕塞德森:字符串,表示json格式的解析文本
-imageGraphics:表示最后检测帧中的SVG图像的字符串
-图像:base64字符串,其中包含上次检测到的帧的图像
-xml: XML格式的部分结果的字符串表示形式