本文主要讲如何使用华为统一扫码scan Kit进行扫一扫以及生成二维码,
有兴趣的可以看一下华为扫描和Zxing扫描的区别
使用步骤
1、在全局的build.gradle文件里添加华为maven仓库

buildscript {repositories {        maven {url 'http://developer.huawei.com/repo/'}}
}
allprojects {repositories {       maven { url 'http://developer.huawei.com/repo/'}}
}

2、在app的build.gradle文件里添加Scan Kit的依赖

implementation 'com.huawei.hms:scanplus:1.1.3.301'

3、在清单文件里添加权限和扫码页面的声明

<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--读文件权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--使用特性-->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" /><!--<!—对扫码页面进行声明&ndash;&gt;-->
<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />

4、下面是代码调用部分
扫一扫

/*** 请求权限* */private void requestPermission(int requestCode, int mode) {ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE},requestCode);}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {if (permissions == null || grantResults == null) {return;}if (grantResults.length < 2 || grantResults[0] != PackageManager.PERMISSION_GRANTED || grantResults[1] != PackageManager.PERMISSION_GRANTED) {return;}if (requestCode == CAMERA_REQ_CODE) {ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create());}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK || data == null) {return;}if (requestCode == REQUEST_CODE_SCAN_ONE) {HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);if (obj != null) {mCeshi.setText(obj.originalValue);}}}

生成二维码

ScanUtil.buildBitmap("这里是要生成二维码的内容",3,300,300,new HmsBuildBitmapOption.Creator().create())

下面是全部的代码,这里我在页面中加了两个按钮,一个开启扫一扫,一个生成二维码

public class MainActivity extends AppCompatActivity {private TextView mCeshi,mCeshi1;private ImageView mCeshi2;private int CAMERA_REQ_CODE=2;private int DECODE=3;private int REQUEST_CODE_SCAN_ONE=4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mCeshi=findViewById(R.id.ceshi);mCeshi1=findViewById(R.id.ceshi1);mCeshi2=findViewById(R.id.ceshi2);mCeshi.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {requestPermission(CAMERA_REQ_CODE, DECODE);}});mCeshi1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {try {mCeshi2.setImageBitmap(ScanUtil.buildBitmap("zhangyujiezhangyujie",3,300,300,new HmsBuildBitmapOption.Creator().create()));} catch (WriterException e) {e.printStackTrace();}}});}/*** 请求权限* */private void requestPermission(int requestCode, int mode) {ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE},requestCode);}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {if (permissions == null || grantResults == null) {return;}if (grantResults.length < 2 || grantResults[0] != PackageManager.PERMISSION_GRANTED || grantResults[1] != PackageManager.PERMISSION_GRANTED) {return;}if (requestCode == CAMERA_REQ_CODE) {ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create());}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK || data == null) {return;}if (requestCode == REQUEST_CODE_SCAN_ONE) {HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);if (obj != null) {mCeshi.setText(obj.originalValue);}}}
}

自此结束

Android扫一扫和生成二维码(使用华为ScanKit)相关推荐

  1. Android超方便 集成 Zxing实现扫一扫,闪光灯,生成二维码图片,解析二维码(条码)等功能

    之前我写过一篇博客是关于如何将zxing集成到Android Studio中,以及简单的实现扫一扫功能. 详情请看:Android Studio集成Zxing扫一扫 但是,上面那篇博客只有有一个扫一扫 ...

  2. Android开发规范,flutter生成二维码

    变量命名要做到足够长有一定意义,同时又足够短以避免冗长. 关于携带Android控件的变量,个人建议规则:[控件逻辑名称]+[控件缩写] 如mLoginBtn, mBottomLayout, mTit ...

  3. android 解析、生成二维码

    android 解析.生成二维码 (1)ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台 ...

  4. 使用zxing生成二维码

    使用zxing批量在做好的立牌背景图的指定位置上,把指定的文本内容(链接地址.文本等)生成二维码并放在该位置, 最后加上立牌编号. 步骤: 1).做好背景图,如下图: 扫一扫添加关注 2).生成二维码 ...

  5. 【Android】zxing扫码识别及生成二维码

    在我们的生活场景中扫码已经无处不见了,微信加好友,分享......甚至在骗子的骗术里面都加入二维码这个东西.还是想在这里提醒大家不要看着什么扫描二维码抢红包,领礼品,就急急忙忙的拿起手机去扫. 今天让 ...

  6. Android用Zxing扫二维码/生成二维码功能

    新年已过,一切恢复真正常,新的一年给自己几句指引: 光努力还不行,方向很重要. 总是想着最坏的结果,就会让人失去改变的勇气. 你当然有权利选择自己的人生--但只有在你真正强大后,逆行的阻力才会降到最小 ...

  7. android zxing扫码 生成二维码

    zxing 实现生成二维码,扫码 demo:https://download.csdn.net/download/chengtaoyan/11170917

  8. 条形码、二维码扫一扫和生成二维码采用ZXing3.0开源库在android studio中实现

    在开始之前先给各位上个运行效果图 二维码QRcode全称Quick Response Code 通过在一个矩形区域内使用黑白像素来进行编码 高纠错性.高可用性.高识别性 四周面有3个大的方框和一个小的 ...

  9. Android:实际运用Zxing集成二维码扫描 及 自定义扫码界面(demo源码)

    二维码扫描,各大主流App必不可少的功能,而且google已将轮子替我们造好,直接拿来使用即可.以下是教学如何将Zxing开源库集成到自己项目中,并且自定义扫码界面,后期可根据自己的业务需求进行修改, ...

最新文章

  1. Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee
  2. python写一个文件下载器_Python3使用TCP编写一个简易的文件下载器
  3. JS中根据某个值进行大小排序
  4. Python之匿名函数
  5. 图片增强来解决图片不足问题
  6. Java事务(转载)
  7. 目录忽略_逆冬黑帽SEO蜘蛛池搭建泛目录快速排名技术
  8. CentOs下php连mssql并配置unixODBC
  9. 用imspost制作catia后处理_新产品开发需要做原型验证,怎么样成型制作才省钱?...
  10. 计算机英语第六单元,计算机专业英语第六版第十单元课后汉译英,We do use other forms....这个do...
  11. 华为mate20能用鸿蒙吗,华为mate20可以用5g网络吗
  12. 【Java】反转数组元素
  13. ajax上传变量,通过ajax传递post变量
  14. python取字符串一部分_python,如何获取字符串中的子字符串,部分字符串
  15. Asp.net性能优化-提高ASP.Net应用程序性能的十大方法
  16. app商城源码_海量的SpringBoot和SSM项目【附带源码+视频教程】快速成为全栈
  17. 命令行_Pytest之命令行执行
  18. Arcmap出了问题--显示“ArcGIS Initializing Application”
  19. AI英雄 | 论人工智能与自由意志,请看尤瓦尔与李飞飞的这场“激辩”
  20. 东软始业教育结业考试

热门文章

  1. ORALC的STDDEV、STDDEV_POP、STDDEV_SAMP等函数
  2. 前端高频面试题-非框架
  3. 企业课堂----企业运营
  4. 徐佳计算机教授,计算机与软件学院第六届ECNU Coder程序设计竞赛成功举办
  5. C-Lodop提示“网页还没下载完毕,请稍等一下再操作.”
  6. 1949-2020年地级市全要素生产率(年度)
  7. 本地python环境快速迁移到另外一台电脑
  8. 回归分析过程实例(练习)
  9. 创建 vue 手脚架
  10. CSS进阶(5)- 浏览器兼容性