分享一个小案例,用HMS Scankit做一个安卓扫码购小应用
前言
随着消费升级,零售业逐渐迈入新的发展阶段,“新零售”现象:消费者在货架前扫描小程序二维码,一边逛一边扫描条形码下单,等选好要买的东西,直接拿出手机,通过“扫码购”专用通道快速结账即可离开门店,根本不需要排长队买单。整个过程行云流水,如果只买一件商品,最快不到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做一个安卓扫码购小应用相关推荐
- 小程序“扫码购”的自助收银模式可以为商家带来什么?
自助收银模式在零售方面的应用,主要有自助收银台自助结算.小程序"扫码购".APP自助购物等自助收银方式.不同的方式会带给商家和用户不同的体验,那么小程序"扫码购" ...
- 新手如何用微信小程序和云数据库做一个论坛?【帖子页】
新手小白用微信小程序和云数据库做一个论坛[帖子页] 先放个效果图 由于后面换了头像,所以评论的头像和发帖的头像不一样. 要做个同款论坛,首先需要用到云数据库.在微信开发者工具的左上角开通云开发就可以了 ...
- 分享三个例程:使用ESP32做一个实时语音对讲机,MQTT协议实现公网对讲,ESP32-CAM 上传图像数据到网络。并附上例程链接。
分享三个例程:使用ESP32做一个实时语音对讲机,MQTT协议实现公网对讲,ESP32-CAM 上传图像数据到网络.并附上例程链接.可以比对着看来学习NOW,MQTT使用方法.想办法把图像和语音代码融 ...
- 微信扫码下单小程序怎么弄(做扫码下单小程序的方法)
很多粉丝朋友咨询我们说:自己想要弄个微信扫码下单的小程序该怎么弄?本文小编就给大家分享一下做扫码下单小程序的方法. 做个扫码下单小程序之前,我们首先要清楚自己的行业以及自己的产品或者服务是哪种类型.然 ...
- 美团扫码付小程序的优化实践
短短几年的时间,微信小程序已经从一颗小小的萌芽成长为参天大树,形成了较大规模的开发者生态系统,尤其是在支付.线下垂直领域潜力巨大. 作为领先的生活服务平台,美团的技术团队在小程序领域也进行了很多的探索 ...
- 腾讯推出“扫码购”,小程序新零售的秘密武器!
昨天,腾讯公布了2018Q1财报,里面首次提到"扫码购"这个神秘"武器". 财报显示,2018年第一季度,腾讯总收入为人民币735.28亿元,比去年同期增长48 ...
- 超简单集成HMS Scan Kit扫码SDK,轻松实现扫码购
前言 在前面的文章中,我们向大家介绍了HMS Scan Kit 的快速集成方法以及HMS Scan Kit和其他开源扫码工具的竞争力对比分析,如果没有看到也没关系,文章下方的往期链接中有文章入口. ...
- Laravel6.0 + vue.js + elementUI + 微信小程序 实现沃尔玛扫码购
本次项目使用 Laravel6.0 + vue.js + elementUI + 微信小程序 实现沃尔玛扫码购 项目设计-接口 本次项目所有接口使用 laravel 框架实现. 项目设计-后台 后台开 ...
- 基于微信小程序springboot粤味早茶店微信扫码点餐系统源码和论文
这是一个功能简单的微信点餐小程序. 当今社会的发展,日新月异,发生了翻天覆地的变化,尤其是在智能方面,发展的更加迅速,随之带来的就是各个产业的智能化.军工业,化工,当然还有餐饮业,都在逐渐向智能化进发 ...
最新文章
- python方法调用名字不一样_python中调用父类同名方法
- 日积月累:ProguardGui进行jar包代码混淆
- 服务器日志清理及IIS日志的清理
- golang操作mysql
- 成功解决ModuleNotFoundError: No module named ‘sklearn.lda‘
- 为啥地址线是20根则存储单元个数为2的20
- 面向对象编程 - 练习题
- php fetchall 返回值为0_PHP实现延迟执行程序
- Chapter 7 Windows下pycaffe的使用之draw_net.py
- Android Studio 加载网络图片
- oKit项目管理软件试用及感受
- HTML DOM教程 47-JavaScript Date 对象
- 数据结构思维 第四章 `LinkedList`
- kubeadm源码分析(kubernetes离线安装包,三步安装)
- java多维数组的反射类型_Java多维数组和Arrays类方法总结详解
- [转]Android TV 遥控器适配
- 用DOSBox运行老游戏
- a标签实现下载文件功能
- php银联支付接口 demo,php版银联支付接口开发简明教程
- 【JavaScript】JS高级-面向对象编程