文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

android扫码 超简单零代码

2022-06-06 13:18

关注

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 instanceof HmsScan) {
        if (!TextUtils.isEmpty(((HmsScan) obj).getOriginalValue())) {
            Toast.makeText(this, ((HmsScan) obj).getOriginalValue(), Toast.LENGTH_SHORT).show();
        }
        return;
    }
}
结语

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


作者:偶是谁的小可爱


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯