前言

  在前面的文章中,我们向大家介绍了HMS Scan Kit 的快速集成方法以及HMS Scan Kit和其他开源扫码工具的竞争力对比分析,如果没有看到也没关系,文章下方的往期链接中有文章入口。我们现在已经习惯了扫码,扫码支付,扫码关注社交账号,扫码了解商品信息,扫码购物等等。今天就给大家介绍一下扫码购的开发流程。


场景

  在购物类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 ,扫面食品二维码,如果该商品已经被录入系统,就会返回对应商品信息。


往期链接:手把手教你如何快速构建应用内消息推送与运营能力
原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201282395801440275&fid=18
原作者:littlewhite

超简单集成HMS Scan Kit扫码SDK,轻松实现扫码购相关推荐

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

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

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

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

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

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

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

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

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

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

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

    前言 就在近期华为HMS ML Kit发布了1.0.3.30版本,ML Kit在原有通用OCR功能的基础上,又添加了银行卡识别(BCR)和二代身份识别(ICR).今天小编就给ML kit除了提供语言相 ...

  7. 集成HMS Scan Kit扫码SDK,轻松实现手机扫码选购

    场景 在购物类APP中,通过扫描二维码的入口,扫描商品的二维码,直接显示商品信息和购买链接,方便客户选购商品. 整体方案 开发前准备 打开AndroidStudio项目级build.gradle文件 ...

  8. 超简单集成HMS Core ML Kit场景识别,构建相册管理新模式

    前言 "给你看下我之前去景区玩拍的照片,风景很好" "嗯嗯,我正好也准备出去玩,快分享下" -- "照片呢,还没找到吗?" "等会 ...

  9. 超简单集成ML kit 实现听写单词播报

    背景   相信我们大家在刚开始学习一门语言的时候都有过听写,现在的小学生学语文的时候一项重要的课后作业就是听写课文中的生词,很多家长们都有这方面的经历.不过一方面这种读单词的动作相对简单,另一方面家长 ...

最新文章

  1. JsBridge Uncaught TypeError: Cannot call method 'callHandler' of undefined, source
  2. quartus 修改 时钟_Clock Quartus II 开发的多功能数字时钟,有计时、调 闹铃、警报等 Other systems 其他 274万源代码下载- www.pudn.com...
  3. java paint 怎么用_java如何使用paint方法画图
  4. matlab 纯数据表格,MATLAB uitable表格数据更新处理
  5. Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
  6. 《软件需求十步走》阅读笔记5
  7. 面试题目整理--逻辑
  8. 词法分析与语法分析简介
  9. 网络知识 -- 第二部
  10. python爬取歌词_python爬虫抓取某易云音乐歌词,从此不在下载
  11. 面试必背 Java 多线程面试题
  12. 分享 45 个让你提升工作效率的前端工具
  13. 分享|2022城市大脑发展白皮书(附PDF)
  14. 云南网络文化经营许可证办理,云南办理网络文化经营许可证多少钱?文网文是什么?怎么办理文网文?办理文网文需要什么材料?
  15. 15.真实感图形——光照与明暗+光线跟踪+纹理映射+辐射度方法+阴影
  16. 影响无线AP终端接入数量的几大因素
  17. jeecgboot--根据模板自定义导出
  18. 什么是Sentinel
  19. 【初识大数据】4、大数据学习路线
  20. Android——Tcp服务端实现

热门文章

  1. 记一次E3-1220V2+HD7450黑苹果安装10.13的过程
  2. 鼠标绘制工具加是否超出范围判断
  3. 最简单的加密---异或加密
  4. 【Deodex】Samsung S5/S6/Note4/Note5 Deodex教程
  5. linux 内存查看 kvm,Linux虚拟化KVM-Qemu分析(五)之内存虚拟化
  6. arcgis10之生成无背景色的png图片
  7. 实践▍用大数据扒一扒蔡徐坤的真假流量粉 | Alfred数据室
  8. AR路由器通过web及代码实现公网用户使用公网地址访问内网服务器,同时内网用户实现通过公网地址访问内外那个服务器
  9. 微表面模型Beckmann–Spizzichino distribution的概率密度函数推导
  10. 70 漂亮且极具亲和力的导航菜单设计推荐