android 实现扫码功能,Android | 带你零代码实现安卓扫码功能
小序
这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用一个扫码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 | 带你零代码实现安卓扫码功能相关推荐
- Android | 带你零代码实现安卓扫码功能
目录 小序 背景介绍 前期准备 开始搬运 结语 小序 这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用一个扫码demo,华为scankit真是新手的福音-- ...
- 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据...
数据产生价值的一个最突出的领域-金融领域,股票.证券.上市公司财务报表等,多少人在其中发掘出宝贵的数据价值. 今天Excel催化剂联合Tushare金融大数据平台,让这一切的数据都能成为你我普通人零代 ...
- Android3D抽方块源码,block puzzle jewel 方块拼图消除游戏安卓源码
[实例简介] block puzzle jewel 方块拼图消除游戏安卓源码,俄罗斯方块变种小游戏,拉拽方块放入,一行或一列消除 [实例截图] [核心代码] f4c3b198-e210-420c-af ...
- 可以上传图片的表白墙php源码,校园表白墙源码 支持上传图片 带背景音乐版表白墙程序源码...
使用说明下载之后,文件目录如下:Forlove :程序核心文件夹ublic :样式图片 JS 文件夹,logo图片文件在这里面;ThinkPHP :ThinkPHP 核心文件,肯定不能删除或者者修改; ...
- 前端三小时用html和js写一个贪吃蛇游戏,非常简单带讲解,代码可直接用,功能完整
目录 游戏主体部分--普通模式 游戏主体部分--地狱模式 游戏主页入口 预览图 游戏入口代码 1.html 2.css 3.js 注册页面代码 游戏实现很简单,只写游戏主体的话只要三小时就够了. 话不 ...
- c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...
具备加密功能的VC++聊天程序实例,"密聊"采用 2048bit 的 RSA 数据加密算法对数据进行加密和数字签名,在使用前必须生成用户的私钥和公钥. 只要通过安全通道相互把公钥传 ...
- 有悔棋功能的五子棋c语言代码,有保存读取悔棋功能的五子棋.doc
有保存读取悔棋功能的五子棋 制作拖动鼠标产生水纹动画的制作 1.导入一张合适的图片到库中 2.在库中刚导入的图片上点击右键.点击"链接",再按下图设置链接属性. 3.新建一个空影片 ...
- java实现转账功能_如何利用Java代码模拟银行转账这一功能?
今天是刘小爱自学Java的第70天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 转账,相信基本都接触过,无论是线下用银行卡转账还是线上用手机转账,本质上都是差不多的. 一.转账案例 需要两个 ...
- 视频直播源码在Android端实现1对1音视频实时通话
我们要使用 WebRTC 进行音视频互动时需要申请访问硬件的权限,至少要申请以下三种权限 Camera 权限 Record Audio 权限 Intenet 权限 在Android中,申请权限分为静态 ...
最新文章
- Electron 开发环境下总是 crash
- 敏捷测试2015新看点
- python一共有多少个内置函数_Python 35个内置函数,你都ok吗?
- eclipse package包 java类 有问号 无法读取的问题解决
- python爬虫怎么赚钱-《python爬虫怎么挣钱》 - 微赚接单平台
- 295.数据流的中位数
- Axure 9 案例教程基础篇之课程简介(助你快速进入实战阶段)
- 2020-11-10 oracle 数据库sql 之decode函数
- 《西游记》中的未解之谜,经典之至
- UML的9种图例解析
- Python 字符串
- python pandas操作excel表
- 不讲武德!为击破苹果的“隐私高墙”,谷歌、Facebook 竟然“二打一”?
- gitlab 私有化管理npm包
- Linux Icon Customization
- 牛顿迭代法求平方根、立方根
- 柠檬树(Lemon tree)
- 爱奇艺2015校园招聘产品笔试题
- 防雷设计、防雷检测为什么选同为科技(TOWE)?
- 除了寻找梅森素数,分布式技术还能做这些!
热门文章
- 渗透小白4:CTF实践
- android 平板怎么截图,iPad如何截图?截屏保存在什么地方?如何传到电脑上?
- 安装打印机0X0000007e报错
- CSS中zoom属性的作用
- css+js手写卡片轮播图
- 用html做祝福语朋友,祝朋友考试成功的祝福语
- Php语言经久不衰,三国杀为何经久不衰,即使和王者荣耀比,立绘也不落下风
- error LNK1104: 无法打开文件“kernel32.lib”错误 Visual Studio 2017解决办法
- Python获取类名的字符串格式
- 乘方负数怎么算用计算机,计算器如何算负数乘方