android扫码 超简单零代码
小序
背景介绍前期准备zxing和华为扫码效劳对比开端搬运
小序
这是一篇纯新手教学,自己之前没有任何安卓开发经历(为难),本文也不涉及任何代码就可以使用一个扫码demo,华为scankit真是新手的福音……
背景介绍
最近被导师要求做一个购物收费的app,毕设好难呀~ 网上找了半天全是zxing,但是扫码效果真是有点小垃圾,无奈只能继续寻寻觅觅……突然发现网上有篇讲集成hms的文章,略微借鉴了一下。由于在下是安卓小白,全篇没有一点代码,只是搬运一下华为网站的codelab,抱着忐忑的心情,竟然可以一键运行……(^-^)V 开森~
前期准备
小女子用的是android studio
用过android studio的人直接忽略,没用过的可以参考在https://developer.android.com/studio这里下载,相关的装置流程可以参考https://www.cnblogs.com/xiadewang/p/7820377.html。
zxing和华为扫码效劳对比
回到我们的主题上—扫码,我在选择扫码库的时候,首先接触到的是google的开源库ZXing,也上手停止了实操,可以说集成过程还是蛮简单的,但是针对我自身的业务场景和需求,识别率上还是不够达标,自动对焦才干也不具备,不可以到达即开即用的要求,所以我就继续停止了调研,就理解到了华为的一个扫码效劳,依照网站上的一些指引,20分钟就搞出来一个小demo,然后就真香,可以自定义UI界面,还可以自动对焦,对于一些有反光,有污损,形变,超远间隔的场景都能很好地识别。特来分享,码字不易哦。最主要的是华为扫码效劳是安卓全机型覆盖,太棒惹!~
开端搬运
当前华为开发者网站上有一个叫做codelab的东西,链接我在下面分享了,亲测可用哦https://developer.huawei.com/consumer/cn/codelab/ScanKit-DefaultView/index.html#0
进来以后页面是这样的,一堆废话,密密麻麻的,可以略过
第二步主要说了使用的工具和版本,注意,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过掉
在左侧的菜单栏中假如上面是一个小机器人,可以下拉选择一下为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 instanceofHmsScan){if(!TextUtils.isEmpty(((HmsScan) obj).getOriginalValue())){
- Toast.makeText(this,((HmsScan) obj).getOriginalValue(), Toast.LENGTH_SHORT).show();}return;}}
复制代码 结语
做完集成之后又回去看了一下开发者文档,内容很多,发现scankit的才干比想象中的还要强大,提供了默认扫码形式,自定义形式,多码识别形式,还可以生成码,详细的我会在接下来的文档中继续po出。感激小哥哥们的关注。 |