小序

这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用一个扫码demo,华为scankit真是新手的福音……

背景介绍

最近被导师要求做一个购物收费的app,毕设好难呀~ 网上找了半天全是zxing,但是扫码效果真是有点小垃圾,无奈只能继续寻寻觅觅……突然发现网上有篇讲集成hms的文章,稍微借鉴了一下。由于在下是安卓小白,全篇没有一点代码,只是搬运一下华为网站的codelab,抱着忐忑的心情,竟然可以一键运行……

前期准备

开发工具用的是android studio

zxing和华为扫码服务对比

回到我们的主题上—扫码,我在选择扫码库的时候,首先接触到的是google的开源库ZXing,也上手进行了实操,可以说集成过程还是蛮简单的,但是针对我本身的业务场景和需求,识别率上还是不够达标,自动对焦能力也不具备,不能够达到即开即用的要求,所以我就继续进行了调研,就了解到了华为的一个扫码服务,按照网站上的一些指引,20分钟就搞出来一个小demo,然后就真香,能够自定义UI界面,还能够自动对焦,对于一些有反光,有污损,形变,超远距离的场景都能很好地识别。特来分享,码字不易哦。最主要的是华为扫码服务是安卓全机型覆盖,太棒惹!~

开始搬运

当前华为开发者网站上有一个叫做codelab的东西,链接我在下面分享了,亲测可用哦https://developer.huawei.com/consumer/cn/codelab/ScanKit-DefaultView/index.html#0

1. 进来以后页面是这样的,一堆废话,密密麻麻的,可以略过。

2. 说了使用的工具和版本,注意,android4.4,新下Android studio的朋友们可以略过,小哥哥们可能需要更新一下。

3. 直接下载sample code,talk is cheap, show me the code。

4. 打开android studio,在file下拉菜单中找到open,选择刚刚解压好的文件目录,在我这里是D:\codelab\Codelab_ScanKit_DefaultView_Full_Demo。然后跳出来这个玩意,直接ok过掉。

5. 在左侧的菜单栏中如果上面是一个小机器人,可以下拉选择一下为project为了保持以下统一,如果有经验的可以忽略这步。

6. 这里在app这个目录下会发现有个叫agcconnect.json的奇怪文件,这个文件是在华为官网上注册自己的账号以后生成的,这个文件主要是为了起到云端校验的功能,因为扫码是纯端侧的服务,因此这里只集成扫码服务的话可以直接删除,不影响使用。

7. 细细研究了一下文档发现scankit提供了两种sdk,一种是大的3.3mb,一种是小的0.7mb,大的小的在华为手机上效果一样,但是大的在非华为手机上也有很好的效果。所以果断选择大的sdk。

首先需要进入app目录下的build.gradle。

然后找到最后,将scan替换成scanplus。

8.点击下图中标红的图标(云下有个箭头),静静等待一杯咖啡的时间,发现底下全部都是绿勾以后就大功告成了。

9.我这里准备了一个华为手机,迫不及待地运行了一下。

10.运行之后效果很棒,无论拉近拉远,反光,模糊,污损效果下都很出色,而且不再需要自己写zxing操蛋的自动缩放了。完美!

细细研究了一下代码,发现代码很简单,点击进入mainactivity之后就能看清楚这个app在干嘛了。

品了一下代码发现所有的东西都给封装好了,在回调函数中返回了识别的结果。稍微改吧一下就添加到我的工程里面了,大功告成,美滋滋。

if (requestCode == REQUEST_CODE_SCAN) {

Object obj = data.getParcelableExtra(ScanUtil.RESULT);

if (obj instanceof HmsScan) {

if (!TextUtils.isEmpty(((HmsScan) obj).getOriginalValue())) {

Toast.makeText(this, ((HmsScan) obj).getOriginalValue(), Toast.LENGTH_SHORT).show();

}

return;

}

}

结语

做完集成之后又回去看了一下开发者文档,内容很多,发现scankit的能力比想象中的还要强大,提供了默认扫码模式,自定义模式,多码识别模式,还可以生成码,详细的我会在接下来的文档中继续po出。

android 实现扫码功能,Android | 带你零代码实现安卓扫码功能相关推荐

  1. Android | 带你零代码实现安卓扫码功能

    目录 小序 背景介绍 前期准备 开始搬运 结语 小序   这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用一个扫码demo,华为scankit真是新手的福音-- ...

  2. 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据...

    数据产生价值的一个最突出的领域-金融领域,股票.证券.上市公司财务报表等,多少人在其中发掘出宝贵的数据价值. 今天Excel催化剂联合Tushare金融大数据平台,让这一切的数据都能成为你我普通人零代 ...

  3. Android3D抽方块源码,block puzzle jewel 方块拼图消除游戏安卓源码

    [实例简介] block puzzle jewel 方块拼图消除游戏安卓源码,俄罗斯方块变种小游戏,拉拽方块放入,一行或一列消除 [实例截图] [核心代码] f4c3b198-e210-420c-af ...

  4. 可以上传图片的表白墙php源码,校园表白墙源码 支持上传图片 带背景音乐版表白墙程序源码...

    使用说明下载之后,文件目录如下:Forlove :程序核心文件夹ublic :样式图片 JS 文件夹,logo图片文件在这里面;ThinkPHP :ThinkPHP 核心文件,肯定不能删除或者者修改; ...

  5. 前端三小时用html和js写一个贪吃蛇游戏,非常简单带讲解,代码可直接用,功能完整

    目录 游戏主体部分--普通模式 游戏主体部分--地狱模式 游戏主页入口 预览图 游戏入口代码 1.html 2.css 3.js 注册页面代码 游戏实现很简单,只写游戏主体的话只要三小时就够了. 话不 ...

  6. c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...

    具备加密功能的VC++聊天程序实例,"密聊"采用 2048bit 的 RSA 数据加密算法对数据进行加密和数字签名,在使用前必须生成用户的私钥和公钥. 只要通过安全通道相互把公钥传 ...

  7. 有悔棋功能的五子棋c语言代码,有保存读取悔棋功能的五子棋.doc

    有保存读取悔棋功能的五子棋 制作拖动鼠标产生水纹动画的制作 1.导入一张合适的图片到库中 2.在库中刚导入的图片上点击右键.点击"链接",再按下图设置链接属性. 3.新建一个空影片 ...

  8. java实现转账功能_如何利用Java代码模拟银行转账这一功能?

    今天是刘小爱自学Java的第70天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 转账,相信基本都接触过,无论是线下用银行卡转账还是线上用手机转账,本质上都是差不多的. 一.转账案例 需要两个 ...

  9. 视频直播源码在Android端实现1对1音视频实时通话

    我们要使用 WebRTC 进行音视频互动时需要申请访问硬件的权限,至少要申请以下三种权限 Camera 权限 Record Audio 权限 Intenet 权限 在Android中,申请权限分为静态 ...

最新文章

  1. Electron 开发环境下总是 crash
  2. 敏捷测试2015新看点
  3. python一共有多少个内置函数_Python 35个内置函数,你都ok吗?
  4. eclipse package包 java类 有问号 无法读取的问题解决
  5. python爬虫怎么赚钱-《python爬虫怎么挣钱》 - 微赚接单平台
  6. 295.数据流的中位数
  7. Axure 9 案例教程基础篇之课程简介(助你快速进入实战阶段)
  8. 2020-11-10 oracle 数据库sql 之decode函数
  9. 《西游记》中的未解之谜,经典之至
  10. UML的9种图例解析
  11. Python 字符串
  12. python pandas操作excel表
  13. 不讲武德!为击破苹果的“隐私高墙”,谷歌、Facebook 竟然“二打一”?
  14. gitlab 私有化管理npm包
  15. Linux Icon Customization
  16. 牛顿迭代法求平方根、立方根
  17. 柠檬树(Lemon tree)
  18. 爱奇艺2015校园招聘产品笔试题
  19. 防雷设计、防雷检测为什么选同为科技(TOWE)?
  20. 除了寻找梅森素数,分布式技术还能做这些!

热门文章

  1. 渗透小白4:CTF实践
  2. android 平板怎么截图,iPad如何截图?截屏保存在什么地方?如何传到电脑上?
  3. 安装打印机0X0000007e报错
  4. CSS中zoom属性的作用
  5. css+js手写卡片轮播图
  6. 用html做祝福语朋友,祝朋友考试成功的祝福语
  7. Php语言经久不衰,三国杀为何经久不衰,即使和王者荣耀比,立绘也不落下风
  8. error LNK1104: 无法打开文件“kernel32.lib”错误 Visual Studio 2017解决办法
  9. Python获取类名的字符串格式
  10. 乘方负数怎么算用计算机,计算器如何算负数乘方