增加后如下图,只改动增加的,其他不动。
③ 添加编译依赖
打开应用级的build.gradle文件
引用SDK,Scan Kit提供两种SDK,您可以根据需求选择合适的SDK,
implementation ‘com.huawei.hms:scan:1.1.3.301’//对SDK大小敏感的开发者
implementation ‘com.huawei.hms:scanplus:1.1.3.301’//对SDK大小不敏感且希望所有机型均具备最佳体验的开发者
怎么看都是这个带了plus的牛逼一些,是因为scan对于非华为手机使用普通识别模型,而scanplus对非华为手机使用增强识别模型,虽然你感觉不到,不过就用plus了。
dependencies{
implementation ‘com.huawei.hms:scanplus:1.1.3.301’
}
在文件头添加配置
apply plugin: ‘com.huawei.agconnect’
重新打开修改完的build.gradle文件,右上方出现“Sync Now”链接。点击“Sync Now”等待同步完成。如果出现错误,请检查网络连接是否正常,以及检查gradle文件是否正确。
④ 配置AndroidManifest.xml
打开AndroidManifest.xml文件
申请静态权限
在application标签内添加对扫码页面的声明
⑤ 实现功能
a. 修改activity_main.xml布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:gravity=“center”
android:orientation=“vertical”
tools:context=“.MainActivity”>
<Button
android:id=“@+id/btn_scan”
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_marginLeft=“20dp”
android:layout_marginRight=“20dp”
android:text=“扫一扫” />
b. 添加标识和动态权限申请
public static final int CAMERA_REQ_CODE = 111;
public static final int DECODE = 1;
private static final int REQUEST_CODE_SCAN_ONE = 0X01;
在启动扫码Activity的地方添加动态权限申请
//权限请求
public void loadScanKitBtnClick(View view) {
requestPermission(CAMERA_REQ_CODE, DECODE);
}
//编辑请求权限
private void requestPermission(int requestCode, int mode) {
ActivityCompat.requestPermissions(
this,
new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE},
requestCode);
}
c. 在权限申请返回中启动扫码界面
//权限申请返回
@Override
public 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) {
//启动扫描Acticity
ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, new HmsScanAnalyzerOptions.Creator().create());
}
}
d. 在Activity回调中获取扫描码的结果
//Activity回调
@Override
protected 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) {
Toast.makeText(this,obj.originalValue,Toast.LENGTH_SHORT).show();
}
}
}
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
0989870)]
[外链图片转存中…(img-MSU0tp8P-1715350989871)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!