前言

随着消费升级,零售业逐渐迈入新的发展阶段,“新零售”现象:消费者在货架前扫描小程序二维码,一边逛一边扫描条形码下单,等选好要买的东西,直接拿出手机,通过“扫码购”专用通道快速结账即可离开门店,根本不需要排长队买单。整个过程行云流水,如果只买一件商品,最快不到2分钟即可实现一次愉快的购物。今天就给大家介绍一下扫码购的开发流程。

场景

在购物类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 Scankit做一个安卓扫码购小应用相关推荐

  1. 小程序“扫码购”的自助收银模式可以为商家带来什么?

    自助收银模式在零售方面的应用,主要有自助收银台自助结算.小程序"扫码购".APP自助购物等自助收银方式.不同的方式会带给商家和用户不同的体验,那么小程序"扫码购" ...

  2. 新手如何用微信小程序和云数据库做一个论坛?【帖子页】

    新手小白用微信小程序和云数据库做一个论坛[帖子页] 先放个效果图 由于后面换了头像,所以评论的头像和发帖的头像不一样. 要做个同款论坛,首先需要用到云数据库.在微信开发者工具的左上角开通云开发就可以了 ...

  3. 分享三个例程:使用ESP32做一个实时语音对讲机,MQTT协议实现公网对讲,ESP32-CAM 上传图像数据到网络。并附上例程链接。

    分享三个例程:使用ESP32做一个实时语音对讲机,MQTT协议实现公网对讲,ESP32-CAM 上传图像数据到网络.并附上例程链接.可以比对着看来学习NOW,MQTT使用方法.想办法把图像和语音代码融 ...

  4. 微信扫码下单小程序怎么弄(做扫码下单小程序的方法)

    很多粉丝朋友咨询我们说:自己想要弄个微信扫码下单的小程序该怎么弄?本文小编就给大家分享一下做扫码下单小程序的方法. 做个扫码下单小程序之前,我们首先要清楚自己的行业以及自己的产品或者服务是哪种类型.然 ...

  5. 美团扫码付小程序的优化实践

    短短几年的时间,微信小程序已经从一颗小小的萌芽成长为参天大树,形成了较大规模的开发者生态系统,尤其是在支付.线下垂直领域潜力巨大. 作为领先的生活服务平台,美团的技术团队在小程序领域也进行了很多的探索 ...

  6. 腾讯推出“扫码购”,小程序新零售的秘密武器!

    昨天,腾讯公布了2018Q1财报,里面首次提到"扫码购"这个神秘"武器". 财报显示,2018年第一季度,腾讯总收入为人民币735.28亿元,比去年同期增长48 ...

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

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

  8. Laravel6.0 + vue.js + elementUI + 微信小程序 实现沃尔玛扫码购

    本次项目使用 Laravel6.0 + vue.js + elementUI + 微信小程序 实现沃尔玛扫码购 项目设计-接口 本次项目所有接口使用 laravel 框架实现. 项目设计-后台 后台开 ...

  9. 基于微信小程序springboot粤味早茶店微信扫码点餐系统源码和论文

    这是一个功能简单的微信点餐小程序. 当今社会的发展,日新月异,发生了翻天覆地的变化,尤其是在智能方面,发展的更加迅速,随之带来的就是各个产业的智能化.军工业,化工,当然还有餐饮业,都在逐渐向智能化进发 ...

最新文章

  1. python方法调用名字不一样_python中调用父类同名方法
  2. 日积月累:ProguardGui进行jar包代码混淆
  3. 服务器日志清理及IIS日志的清理
  4. golang操作mysql
  5. 成功解决ModuleNotFoundError: No module named ‘sklearn.lda‘
  6. 为啥地址线是20根则存储单元个数为2的20
  7. 面向对象编程 - 练习题
  8. php fetchall 返回值为0_PHP实现延迟执行程序
  9. Chapter 7 Windows下pycaffe的使用之draw_net.py
  10. Android Studio 加载网络图片
  11. oKit项目管理软件试用及感受
  12. HTML DOM教程 47-JavaScript Date 对象
  13. 数据结构思维 第四章 `LinkedList`
  14. kubeadm源码分析(kubernetes离线安装包,三步安装)
  15. java多维数组的反射类型_Java多维数组和Arrays类方法总结详解
  16. [转]Android TV 遥控器适配
  17. 用DOSBox运行老游戏
  18. a标签实现下载文件功能
  19. php银联支付接口 demo,php版银联支付接口开发简明教程
  20. 【JavaScript】JS高级-面向对象编程

热门文章

  1. 蓄热式加热炉燃烧技术
  2. CSS基础知识汇总{主要内容: CSS语法结构,类选择器,后代选择器,交集选择器等}
  3. 第七章 在网页中嵌入多媒体内容
  4. 一文带你了解软件测试的价值,以后别再说软测天天在划水啦
  5. 03 计算机视觉-opencv图像形态学处理
  6. 常见的SAP ERP系统大概要多少钱?
  7. 奔驰S400商务型升级前排通风座椅系统,夏天必备的功能
  8. 【小米手环7】使用 Zeus + 表盘自定义工具 为小米手环7开发和安装小程序
  9. splunk篇5-导出csv文件中文乱码
  10. JS逆向基础知识个人总结