应用场景
- 扫码登录
- 识别二维码
- wifi密码分享
- 加好友
- 转账
- ....
二维码本质
二维码其实就是一串字符串,当然啦,也可以是加密以后的字符串
android二维码库
各个模块的功能
我们做android开发用到的有:
- core核心库
- android-core 安卓核心库
- android demo
其中android文件夹下是一个demo,使用maven构建的,所以我们在使用as打开时,要选择导入maven项目
但是要注意发行的版本要求:
Demo
我们把demo使用as打开,运行起来
如果遇到错误,根据提示去解决即可,很简单,如果解决不了,再到提问模块去发帖子提问吧。
需要添加依赖:
dependencies {
implementation 'com.google.zxing:android-core:3.3.0'
implementation 'com.google.zxing:core:3.3.2'
}
需要动态获取camera权限,否则android6.0以上的版本会报错,我这里下载到的是zxing-3.3.0版本
入口Activity是CaptureActivity
在这里我们做一下请求权限
int permissionResult = checkSelfPermission(Manifest.permission.CAMERA);
if(permissionResult != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA},PERMISSION_CODE);
}
demo的话,结果我们就不处理了,直接允许使用camera即可
再修改一下activity的方向
android:screenOrientation="sensorLandscape"
改成
android:screenOrientation="portrait"
集成到项目
我们把demo跑起来以后,那还不好说嘛!复制粘贴到我们自己的项目,对吧!
或者把demo打成包,然后给到项目里依赖即可。
然后在app里添加依赖
implementation project(path: ':zxinglib')
注册activity:
<activity
android:name="com.sunofbeaches.zxinglib.CaptureActivity"
android:screenOrientation="portrait">
</activity>
点击扫码按钮的时候,打开activity:
qrScan.setOnClickListener {
//跳转到扫码界面
val intent = Intent(context, CaptureActivity::class.java)
startActivityForResult(intent, REQUEST_CODE_SCAN)
}
效果:
UI定制
这个原生的UI肯定不是我们想要的,所以我样需要稍微定制一下,比如说,加个返回按钮。对吧!
比如说可以做一些文字提示。
改了一个小时,但是我放弃了,kotlin调用真的好多地方要改,而且代码比较老咯。
那怎么办呢?果断删除掉,如果用java的话,应该会比较快,后面我们再尝试一下。
然后使用别人封装好的!
github上找找看
推荐大家使用这个库
具体用法请看文档吧,特别简单。如果搞不定的同学可以看视频。