当前位置: 首页 > 后端技术 > Java

二维码能否污损、反光、远距离扫描?统一扫码服务告诉你,可以!

时间:2023-04-01 21:48:34 Java

二维码和条形码已经发明和发展了几十年。因其阅读信息快捷方便,在数字经济时代得到广泛应用。扫描二维码可以识别健康状况、识别身份信息、访问网站链接、完成财务支付等,已经成为生活中不可或缺的实用技术,因此很多APP都配备了“扫一扫”功能。然而,在日常扫描过程中,我们经常会遇到扫描环境较暗、二维码脏污模糊等情况,导致二维码难以识别。HMSCore统一扫码服务(ScanKit)针对常见的复杂扫码场景(如反光、暗光、污渍、模糊、圆柱体)做了针对性识别优化,也可实现远距离码或小码检测验证.自动放大,提高扫码成功率和用户体验。1、远距离扫描。普通二维码扫描仪的只读距离不超过30厘米。但是我们生活中经常会出现远距离扫码的情况,比如停车场远距离扫码支付、公共场所扫码等,此时普通的扫码服务就会出现扫码困难。统一扫码服务,由于在扫码过程中加入了预检测功能,即使肉眼无法分辨,也能自动放大超远距离二维码。2、二维码被篡改二维码被篡改也是用户在日常扫码中经常遇到的情况。比如在扫码骑行时,遇到损坏的二维码。经常会出现不完整的情况。统一扫描服务基于多项计算机视觉技术,可大幅提升复杂场景的识别率。当然,除了支持污损二维码扫描,HMSCore统一扫码服务在遇到反光、暗光等场景,甚至二维码贴在曲面或曲面的产品上时,也能顺利扫码。角落;您边走边扫描二维码,此时的二维码比较模糊,不影响二维码扫描的准确性。3、多码识别在仓库盘点收货时,经常会遇到货物堆满,上面贴有条码的情况。如果工人一个一个扫码,效率很低。多码识别可帮助仓库盘点、快递等场景一次识别多个码,提高业务处理效率。在多码识别模式下,ScanKit一次最多可识别5个码,种类不限。4.有时由于环境限制,我们可能会因为多角度扫描而无法正面扫描二维码。统一扫码服务基于自动检测和旋转纠错能力,识别范围更广(侧边+45°),支持用户任意角度扫码,并能自动纠错快速识别二维码。即使位置不方便,也能正确识别,从而提高应用扫码的灵活性和识别率。开发步骤统一扫码服务提供多种接入方式,最少5行代码即可拥有强大的扫码能力,开发者可以直接使用ScanKit提供的默认扫码页面,也可以基于ScanKit提供的示例代码,快速自定义扫描功能。下面我将以DefaultViewMode为例展示具体的集成步骤。开发前,准备在项目级"setting.gradle"pluginManagement中配置HMSCore的maven仓库地址maven{url'https://developer.huawei.com/repo/'}}}dependencyResolutionManagement{...repositories{google()mavenCentral()//配置HMSCoreSDK的Maven仓库地址。maven{url'https://developer.huawei.com/repo/'}}}2.在应用级build.gradle中添加编译依赖dependencies{implementation'com.huawei.hms:scanplus:2.4.0.302'}配置混淆脚本-ignorewarnings-keeattributes*Annotation*-keeattributesExceptions-keeattributesInnerClasses-keeattributesSignature-keeattributesSourceFile,LineNumberTable-keepclasscom.hianalytics.android.**{*;}-keepclasscom.huawei.**{*;}在“AndroidManifest.xml”中指定相机权限和文件读取权限,动态申请permissions//CAMERA_REQ_CODE用户自定义,用于接收权限验证结果的请求码。this.requestPermissions(newString[]{Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE},CAMERA_REQ_CODE);查看相应权限是否开启,决定是否继续扫码。//实现“onRequestPermissionsResult”函数,接收验证权限结果。finalintPERMISSIONS_LENGTH=2;@OverridepublicvoidonRequestPermissionsResult(intrequestCode,String[]permissions,int[]grantResults){//判断“requestCode”是否为申请权限时设置请求码CAMERA_REQ_CODE,然后验证权限开启地位。if(requestCode==CAMERA_REQ_CODE&&grantResults.length==PERMISSIONS_LENGTH&&grantResults[0]==PackageManager.PERMISSION_GRANTED&&grantResults[1]==PackageManager.PERMISSION_GRANTED){//调用扫码接口构建扫码能力。...}}构建扫码功能根据实际需要创建扫码选项参数。//"QRCODE_SCAN_TYPE"和"DATAMATRIX_SCAN_TYPE"表示只扫描二维码和数据矩阵码扫码页面,用户可以使用摄像头扫码,或者使用本页面的“导入图片”按钮检测图片中的码ScanUtil.startScan(this,REQUEST_CODE_SCAN_ONE,options);实现回调接口接收扫码结果,通过该接口返回相机扫码和导入图片扫码。@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);if(resultCode!=RESULT_OK||data==null){返回;}if(requestCode==REQUEST_CODE_SCAN_ONE){//导入图像扫描结果HmsScanobj=data.getParcelableExtra(ScanUtil.RESULT);if(obj!=null){//显示解码结果showResult(obj);}}}更多详情>>访问华为开发从开发者联盟官网获取开发指导文档。华为移动服务开源仓库地址:GitHub和Gitee。关注我们,第一时间了解HMSCore最新技术资讯~