Android扫码功能 您所在的位置:网站首页 华为nova5pro扫一扫快捷键 Android扫码功能

Android扫码功能

2023-08-29 13:00| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、华为统一扫码服务是什么?二、使用步骤1.准备工作2.开启扫码功能3.自定义扫码页面4.同时识别多个二维码 总结

前言

Android上的二维码扫描库相信大家都用过ZXing吧,这里给大家介绍一个新的解决方案:华为统一扫码服务。可一行代码调用默认扫码页面,也可以自定义扫码UI,还可以同时识别多个二维码及从相册选择照片进行识别。 给个截图展示一下效果: 测试demo页面 默认扫码页面

一、华为统一扫码服务是什么?

华为统一扫码服务是由HMS SDK提供的一项识别一维码、二维码的能力。使用该服务可以给app快速引入条形码、二维码识别和生成的功能。

二、使用步骤 1.准备工作

(1)准备好华为开发者账号并创建应用 这一步需要自己去华为开发者网站上操作,提交各种资料注册账号,成功后再创建应用。 (2)集成HMS Core SDK和引入扫码库 官方文档地址: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-integrating-sdk-0000001050042006

(3)配置混淆脚本 官方文档地址: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-config-obfuscation-scripts-0000001050043957

2.开启扫码功能

做好上面的步骤顺利引入SDK后,就可以开始整代码了。 第一步、检查AndroidManifest.xml文件中是否有配置相机和存储权限,没有的话需要加上;使用时仍需要在代码中动态申请

第二步、编写布局,点击按钮,申请权限,授权后打开扫码页面,开始扫码 activity_main.xml

MainActivity.java如下

package com.example.scan.demo; import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import com.huawei.hms.hmsscankit.ScanUtil; import com.huawei.hms.ml.scan.HmsScan; import com.huawei.hms.ml.scan.HmsScanAnalyzerOptions; public class MainActivity extends AppCompatActivity { private static final int REQUEST_CODE_SCAN_ONE = 99; private static final int REQUEST_CODE_PERMISSION = 98; //必须的权限 private String[] permissions = {Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //点击事件 findViewById(R.id.scan_default).setOnClickListener(v -> { //判断操作系统的版本,Android 6.0及以上需要动态申请权限 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { this.requestPermissions(permissions, REQUEST_CODE_PERMISSION); } else { startDefaultScanMode(); } }); } //开启默认扫码模式 private void startDefaultScanMode() { HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions .Creator() .setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE, HmsScan.DATAMATRIX_SCAN_TYPE) .create(); ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, options); } //申请权限后的返回结果处理 @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_CODE_PERMISSION) { for (int i = 0; i Toast.makeText(this, "需要开启该相机和存储权限才能正常使用扫码功能!", Toast.LENGTH_SHORT).show(); return; } } startDefaultScanMode(); } } //扫码结果处理 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_SCAN_ONE) { //解析出扫码结果对象,并toast一下 HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT); if (obj != null) { Toast.makeText(this, obj.originalValue, Toast.LENGTH_LONG).show(); } } } } 3.自定义扫码页面

等把页面整好看一点再放出来

4.同时识别多个二维码

本部分放在下一篇中介绍,正在总结中…

总结

以上是对自己使用华为统一扫码服务的一些总结,做个笔记,希望能帮到人



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有