Android扫一扫和生成二维码(使用华为ScanKit)
本文主要讲如何使用华为统一扫码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" /><!--<!—对扫码页面进行声明–>-->
<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)相关推荐
- Android超方便 集成 Zxing实现扫一扫,闪光灯,生成二维码图片,解析二维码(条码)等功能
之前我写过一篇博客是关于如何将zxing集成到Android Studio中,以及简单的实现扫一扫功能. 详情请看:Android Studio集成Zxing扫一扫 但是,上面那篇博客只有有一个扫一扫 ...
- Android开发规范,flutter生成二维码
变量命名要做到足够长有一定意义,同时又足够短以避免冗长. 关于携带Android控件的变量,个人建议规则:[控件逻辑名称]+[控件缩写] 如mLoginBtn, mBottomLayout, mTit ...
- android 解析、生成二维码
android 解析.生成二维码 (1)ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台 ...
- 使用zxing生成二维码
使用zxing批量在做好的立牌背景图的指定位置上,把指定的文本内容(链接地址.文本等)生成二维码并放在该位置, 最后加上立牌编号. 步骤: 1).做好背景图,如下图: 扫一扫添加关注 2).生成二维码 ...
- 【Android】zxing扫码识别及生成二维码
在我们的生活场景中扫码已经无处不见了,微信加好友,分享......甚至在骗子的骗术里面都加入二维码这个东西.还是想在这里提醒大家不要看着什么扫描二维码抢红包,领礼品,就急急忙忙的拿起手机去扫. 今天让 ...
- Android用Zxing扫二维码/生成二维码功能
新年已过,一切恢复真正常,新的一年给自己几句指引: 光努力还不行,方向很重要. 总是想着最坏的结果,就会让人失去改变的勇气. 你当然有权利选择自己的人生--但只有在你真正强大后,逆行的阻力才会降到最小 ...
- android zxing扫码 生成二维码
zxing 实现生成二维码,扫码 demo:https://download.csdn.net/download/chengtaoyan/11170917
- 条形码、二维码扫一扫和生成二维码采用ZXing3.0开源库在android studio中实现
在开始之前先给各位上个运行效果图 二维码QRcode全称Quick Response Code 通过在一个矩形区域内使用黑白像素来进行编码 高纠错性.高可用性.高识别性 四周面有3个大的方框和一个小的 ...
- Android:实际运用Zxing集成二维码扫描 及 自定义扫码界面(demo源码)
二维码扫描,各大主流App必不可少的功能,而且google已将轮子替我们造好,直接拿来使用即可.以下是教学如何将Zxing开源库集成到自己项目中,并且自定义扫码界面,后期可根据自己的业务需求进行修改, ...
最新文章
- Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee
- python写一个文件下载器_Python3使用TCP编写一个简易的文件下载器
- JS中根据某个值进行大小排序
- Python之匿名函数
- 图片增强来解决图片不足问题
- Java事务(转载)
- 目录忽略_逆冬黑帽SEO蜘蛛池搭建泛目录快速排名技术
- CentOs下php连mssql并配置unixODBC
- 用imspost制作catia后处理_新产品开发需要做原型验证,怎么样成型制作才省钱?...
- 计算机英语第六单元,计算机专业英语第六版第十单元课后汉译英,We do use other forms....这个do...
- 华为mate20能用鸿蒙吗,华为mate20可以用5g网络吗
- 【Java】反转数组元素
- ajax上传变量,通过ajax传递post变量
- python取字符串一部分_python,如何获取字符串中的子字符串,部分字符串
- Asp.net性能优化-提高ASP.Net应用程序性能的十大方法
- app商城源码_海量的SpringBoot和SSM项目【附带源码+视频教程】快速成为全栈
- 命令行_Pytest之命令行执行
- Arcmap出了问题--显示“ArcGIS Initializing Application”
- AI英雄 | 论人工智能与自由意志,请看尤瓦尔与李飞飞的这场“激辩”
- 东软始业教育结业考试