阅读 326

Android与IOS集成华为统一扫码服务( Scan Kit )

简介

华为统一扫码服务(Scan Kit)提供便捷的条形码和二维码扫描、解析、生成能力,帮助开发者快速构建应用内的扫码功能。

得益于华为在计算机视觉领域能力的积累,Scan Kit 可以实现远距离码或小型码的检测和自动放大,同时针对常见复杂扫码场景(如反光、暗光、污损、模糊、柱面)做了针对性识别优化,提升扫码成功率与用户体验。

Scan Kit 支持 Android 和 iOS 系统集成。其中,Android 系统集成 Scan Kit 后支持横屏扫码能力。

支持的设备

image.png

场景介绍

Scan Kit 支持扫描13种全球主流的码制式。如果开发者的应用只处理部分特定的码制式,开发者也可以在接口中指定制式以便加快扫码速度。已支持的码制式:

  • 一维码:EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF-14

  • 二维码:QR Code、Data Matrix、PDF417、Aztec

Scan Kit 提供多种调用模式,开发者可根据需求选择一个合适的模式构建扫码功能。

image.png

集成步骤:

1.引入依赖:

repositories {         // 配置HMS Core SDK的Maven仓地址。         maven {url 'https://developer.huawei.com/repo/'}     } allprojects {     repositories {         // 配置HMS Core SDK的Maven仓地址。         maven {url 'https://developer.huawei.com/repo/'}     } 复制代码

华为官方给我们提供了两种类型的依赖包: 引用SDK。Scan Kit提供两种SDK,您可以根据需求选择合适的SDK。

image.png

例如,您使用Scan SDK,则在“dependencies”中添加如下编译依赖, {version} 需要替换为实际的SDK版本号, 按需接入:

implementation 'com.huawei.hms:scanplus:1.3.2.300' 复制代码

然后注意动态申请相机权限

2.扫码代码:

/**      * 扫描二维码      */ private final int REQUEST_CODE_SCAN_DEFAULT_MODE=200     private void startScan(){         HmsScanAnalyzerOptions options=new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();         ScanUtil.startScan(this,REQUEST_CODE_SCAN_DEFAULT_MODE, options);     } @Override     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {         super.onActivityResult(requestCode, resultCode, data);         if (resultCode != RESULT_OK || data == null) {             return;         }         if(requestCode==REQUEST_CODE_SCAN_DEFAULT_MODE){ //获取扫码结果             HmsScan hmsScan=data.getParcelableExtra(ScanUtil.RESULT);             if(!TextUtils.isEmpty(hmsScan.originalValue)){             }         }     } 复制代码

3.根据url生产二维码(文字也可以生成):

private int width=700, height=700;//二维码尺寸     private Bitmap resultImage;//所需结果     private int type = 0;//码类型。0=QR Code、1=Data Matrix、2=PDF417、3=Aztec     private int margin = 1;//边距     private int color = Color.BLACK;//码颜色     private int background = Color.WHITE;//码背景色     /**      * 生产二维码      * @param url  /string文字也可以      */     private void generateCode(String url){         HmsBuildBitmapOption options = new HmsBuildBitmapOption.Creator().setBitmapMargin(margin).setBitmapColor(color).setBitmapBackgroundColor(background).create();         try {             resultImage = ScanUtil.buildBitmap(url, type, width, height, options);         } catch (WriterException e) {             e.printStackTrace();         }     } 复制代码

效果

image.png


作者:i小灰
链接:https://juejin.cn/post/6993497976647729165


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐