华为HMS Scankit 扫码SDK集成-实现扫一扫功能

华为HMS Scankit 扫码SDK集成-实现扫一扫功能



一、集成HMS Core SDK

1.添加当前应用的AppGallery Connect配置文件

华为开发者联盟注册成为开发者-创建应用-下载agconnect-services.json文件

在这里插入图片描述
2.将“agconnect-services.json”文件拷贝到应用级根目录下
在这里插入图片描述
3.配置HMS Core SDK的Maven仓地址

  1. 打开Android Studio项目级“build.gradle”文件。
  2. 添加HUAWEI agcp插件以及Maven代码库。

在“buildscript > repositories”中配置HMS Core SDK的Maven仓地址。
在“allprojects > repositories”中配置HMS Core SDK的Maven仓地址。
如果App中添加了“agconnect-services.json”文件则需要在“buildscript >
dependencies”中增加agcp配置。

在这里插入图片描述
4.添加编译依赖

  1. 打开应用级的“build.gradle”文件。
  2. 引用SDK,Scan Kit提供两种SDK,您可以根据需求选择合适的SDK。
dependencies{
  implementation 'com.huawei.hms:scan:1.3.2.300'
  implementation 'com.huawei.hms:scanplus:1.3.2.300'
 }

说明
如果在非华为手机使用多码能力接口,请使用Scan SDK-Plus,否则会影响识别。
com.huawei.hms:scanplus:{version}

  1. 添加AGC插件配置。请根据实际情况选择:
  • 方式一:在文件头部声明下一行添加如下配置
apply plugin: 'com.huawei.agconnect'
  • 方式二:在plugins中添加如下配置。
plugins {
    id 'com.android.application'
    //添加如下配置
    id 'com.huawei.agconnect'
}

二、配置混淆脚本

  1. 在应用级根目录下打开混淆配置文件“proguard-rules.pro”,加入排除HMS Core SDK的混淆配置脚本。
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
  1. 如果您使用了AndResGuard,需要在应用级的“build.gradle”文件中加入AndResGuard允许清单。
"R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*", 
"R.string.agc*"

三、指定权限

  1. AndroidManifest.xml中指定相应的权限
  2. 代码中动态申请一下权限
  3. 校验是否开启相应的权限,决定是否继续扫码
<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--读文件权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//CAMERA_REQ_CODE为用户自定义,用于接收权限校验结果
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE}, CAMERA_REQ_CODE);
//实现“onRequestPermissionsResult”函数接收校验权限结果
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    //判断“requestCode”是否为申请权限时设置请求码CAMERA_REQ_CODE,然后校验权限开启状态
    if (requestCode == CAMERA_REQ_CODE && grantResults.length == 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
        //调用扫码接口,构建扫码能力,需您实现
        ...
    }
}

四、调用扫码功能

调用HMS Core SDK的“startScan”扫码接口,启动扫码界面


五、官方文档demo

官方文档Demo

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值