场景


在购物类APP中,通过扫描二维码的入口,扫描商品的二维码,直接显示商品信息和购买链接,方便客户选购商品。

整体方案


开发前准备


打开AndroidStudio项目级build.gradle文件




在allprojects ->repositories里面配置HMS SDK的maven仓地址

allprojects { repositories { google() jcenter() maven {url 'http://developer.huawei.com/repo/'} } }

在buildscript->repositories里面配置HMS SDK的maven仓地址

buildscript { repositories { google() jcenter() maven {url 'http://developer.huawei.com/repo/'} } }

添加编译依赖

打开应用级的build.gradle文件


集成SDK

dependencies{  implementation 'com.huawei.hms:scan:1.1.3.301'
}

指定权限和特性

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

由于使用集成简单的defaultview,所以在AndroidManifest.xml清单文件中对扫码页面进行声明

<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />

扫码购物代码开发关键步骤


主要有两个功能,一个是添加产品,一个是查询产品,通过扫码+拍照绑定一组产品,保存后即可通过扫描

动态权限申请


private static final int PERMISSION_REQUESTS = 1;
@Override
public void onCreate(Bundle savedInstanceState) { // Checking camera permission   if (!allPermissionsGranted()) {getRuntimePermissions();}
}

启动添加产品页面


通过按钮add product 触发添加商品页面

public void addProduct(View view) {Intent intent = new Intent(MainActivity.this, AddProductActivity.class);startActivityForResult(intent, REQUEST_ADD_PRODUCT);}

进行扫码,录入产品条形码信息


调用defaultview进行扫码

private void scanBarcode(int requestCode) {HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();ScanUtil.startScan(this, requestCode, options);}

回调函数中保存扫码的结果


@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}if ((requestCode == this.REQUEST_CODE_SCAN_ALL)&& (resultCode == Activity.RESULT_OK)) {HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);if (obj != null && obj.getOriginalValue() != null) {this.barcode = obj.getOriginalValue();}} else if ((requestCode == this.REQUEST_TAKE_PHOTO)&& (resultCode == Activity.RESULT_OK)) {……}}

扫码查询商品


扫码查询的方法也类似,直接在主页面进行即可,在回调函数中对结果进行展示

public void queryProduct(View view) {HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();ScanUtil.startScan(this, REQUEST_QUERY_PRODUCT, options);
}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}if ((requestCode == this.REQUEST_ADD_PRODUCT) && (resultCode == Activity.RESULT_OK)) {barcodeToProduct.put(data.getStringExtra(Constant.BARCODE_VALUE), data.getStringExtra(Constant.IMAGE_PATH_VALUE));} else if ((requestCode == this.REQUEST_QUERY_PRODUCT) && (resultCode == Activity.RESULT_OK)) {HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);String path = "";if (obj != null && obj.getOriginalValue() != null) {path = barcodeToProduct.get(obj.getOriginalValue());}if (path != null && !path.equals("")) {loadCameraImage(path);showPictures();}}}

Demo效果


首先使用demo中的add product,录入商品的二维码信息,并拍照记录,之后使用query product ,扫面食品二维码,如果该商品已经被录入系统,就会返回对应商品信息。

集成HMS Scan Kit扫码SDK,轻松实现手机扫码选购相关推荐

  1. 超简单集成HMS Scan Kit扫码SDK,轻松实现扫码购

    前言   在前面的文章中,我们向大家介绍了HMS Scan Kit 的快速集成方法以及HMS Scan Kit和其他开源扫码工具的竞争力对比分析,如果没有看到也没关系,文章下方的往期链接中有文章入口. ...

  2. android 贴纸 源码,超简单集成HMS ML Kit 人脸检测实现可爱贴纸

    前言 在这个美即真理.全民娱乐的时代,可爱有趣的人脸贴纸在各大美颜软件中得到了广泛的应用,现在已经不仅局限于相机美颜类软件中,在社交.娱乐类的app中对人脸贴纸.AR贴纸的需求也非常广泛.本文详细介绍 ...

  3. 【转载】超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

    文章目录 前言 场景 开发前准备 在项目级gradle里添加华为maven仓 在应用级的build.gradle里面加上SDK依赖 在AndroidManifest.xml文件里面申请相机.访问网络和 ...

  4. 超简单集成HMS ML Kit 实现parental control

    前言   各位应用程序开发者有没有在后台收到过家长们的反馈? 希望能够提供一个开关,采取一些措施保护小孩的眼睛,因为现在小孩子的近视率越来越高,和他们长时间近距离盯着屏幕有很大的关系.最近有一个海外的 ...

  5. 超简单集成HMS ML Kit二代身份证识别,一键实名认证

    前言 就在近期华为HMS ML Kit 发布了1.0.3.30版本,ML Kit在原有通用OCR功能的基础上,又新增了银行卡识别(BCR)和二代身份证识别(ICR).今天小编就给大家介绍一下其中的IC ...

  6. android自带抓拍算法,Android | 超简单集成HMS ML Kit实现最大脸微笑抓拍

    前言 如果大家对HMS ML Kit 人脸检测功能有所了解,相信已经动手调用我们提供的接口编写自己的APP啦.目前就有小伙伴在调用接口的过程中反馈,不太清楚HMS ML Kit 文档中的MLMaxSi ...

  7. 视频加文件怎么做成二维码?轻松完成二维码图片制作

    二维码的应用在当下十分的流行,像是个人名片.出入登记.用户反馈表等等都可以做成二维码来使用.那么, 想要把视频和文件做成一个二维码图片的时候要怎么操作呢?有没有简单实用的二维码生成器呢? 一.什么样的 ...

  8. 生成二维码,用安卓手机扫直接下载apk,用苹果手机扫跳转至appstore

    方式一 若是腾讯应用宝的应用,可直接用官网的「微下载」服务 优势:IOS扫扫即可跳转appstore. 劣势:android下载,要点蓝色按钮下方的"普通下载",否则部分机型会随机 ...

  9. 华为统一扫码服务(Scan Kit)

    简介 华为统一扫码服务(Scan Kit)提供便捷的条形码和二维码扫描.解析.生成能力,帮助开发者快速构建应用内的扫码功能. 得益于华为在计算机视觉领域能力的积累,Scan Kit 可以实现远距离码或 ...

最新文章

  1. (转)uml 静态视图依赖
  2. 2017阿里云TECH INSIGHT干货分享第六届隆重回归
  3. 关于Linux发行版本RedHat9中文输入法使用问题的说明
  4. 最新 react 开发框架(webpack2、react15、react-router4、antd-mobile)
  5. uc3842开关电源电路图_UC3842构成的开关电源电路
  6. Vue 组件间通信方法汇总
  7. Oracle 11g R2 RAC 高可用连接特性
  8. html布局四个正方形,分享一个css小技巧,实现给正方形的四个角设置小方块的方法...
  9. 量子时代已来,与时代接轨,从这本书开始
  10. FWT快速沃尔什变换
  11. 为什么我得到javafx.fxml.LoadException甚至fxml文件的路径都是正确的
  12. 南京林业大学883数据结构本校资料
  13. 无线系列-无线通信系统组成
  14. VB 6.0下载|Visual Basic 6.0简体中文企业版下载
  15. Delayed Project
  16. 商户如何接入微信支付
  17. debezium报错处理系列七:The database history couldn‘t be recovered. Consider to increase the value for datab
  18. android 增大日志缓存
  19. 33.Redis详解
  20. 记录2022年双非硕的艰难春招之路

热门文章

  1. 以前Java恐龙,侏罗纪已过去亿万年,恐龙样貌如何被还原?
  2. 科技云报道:元宇宙,会是云计算的下一个新战场吗?
  3. 飞跃芝麻街:XLNet 详解
  4. 窗前花相映 一抹杏腮红 | 腮红用户画像分析
  5. 【大数据】《红楼梦》作者分析(QDU)
  6. 急!急!急!如何申请公网ip
  7. Nepnep战队:哪有什么一战成名,其实都是百炼成钢
  8. c语言中 %d与%2d与%02d的区别在哪里
  9. 【它山之玉】提高文章命中率的秘诀-科学网马臻
  10. hbulider初学教程及html5五子棋小程序