Android 扫描二维码(Scan Kit)

华为统一扫码服务(Scan Kit)能够提供专业的二维码与条形码扫描与解析能力,通过集成Scan Kit,帮助应用快速构建扫码功能。

统一扫码服务的功能

全面的码识别能力:Scan Kit支持全球主流的13种码制式识别。官方表示,Scan Kit几乎覆盖了日常生活中可见的各种二维码和条形码,识别成功率超过96%。

远距离检测与自动放大:Scan Kit可通过自动检测远距离码和小型码并进行自动放大,提高使用者的应用扫码成功率。

任意角度识别:Scan Kit基于自动检测及旋转纠正能力,支持用户从任意角度扫码,提升应用扫码灵活度和识别率。

复杂场景识别增强:Scan Kit基于多项计算机视觉技术(CV),能够在低光照、反光、变形、模糊、污损、彩色及特殊形态码、多码并存等各种疑难场景中进行识别增强。

场景化的码内容分析能力:Scan Kit还具备码内容分析能力。在扫描时同步提取码的结构化信息和适用场景,帮助APP快速为用户提供相应的服务,包括连接Wi-Fi、添加联系人、添加日程、查询位置等,覆盖多达12种生活化场景。

接入华为统一扫码服务

华为表示,开发者可以根据需要选择4种不同的接入模式,其中Default view mode,最少只需要5行代码,即可实现快速集成。同时,码识别和解析的过程全部在端侧完成,不保存扫描后的码信息,确保用户隐私安全。

具体内容参考华为扫码服务开发指南

示例图

使用

在项目级gradle里添加华为maven仓

buildscript {repositories {        maven {url 'http://developer.huawei.com/repo/'}}
}
allprojects {repositories {       maven { url 'http://developer.huawei.com/repo/'}}
}

在应用级的build.gradle里面加上SDK依赖

增量添加SDK依赖,SDK他们有两种版本,plus和普通版,plus效果好点儿但是包稍微大一点儿,这个地方我选了plus版本,可以根据自己需要自行选择,版本号填他们最新的版本就好。

dependencies{ implementation 'com.huawei.hms:scanplus:1.1.1.301' }

加混淆配置

复制粘贴华为官网上给的混淆代码就可以了

-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.**{*;}

Manifest申请静态权限和扫码页面声明

申请静态权限和使用特性

<!--相机权限-->
<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" />

在application标签内添加对扫码页面的声明

<!--对扫码页面进行声明-->
<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />

代码开发

动态申请权限

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);
}

在权限申请回调中启动扫码界面

@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) {ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE).create());}
}

在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) {this.textView.setText(obj.originalValue);}}
}ParcelableExtra(ScanUtil.RESULT);if (obj != null) {this.textView.setText(obj.originalValue);}}
}

Android 扫描二维码(Scan Kit)相关推荐

  1. Android扫描二维码 实现 登录网页

    工程代码:ScanQRcode.zip ------------------------------------------------------------------ 1. 扫描二维码登录的实现 ...

  2. Android 扫描二维码 以及优化方面相关知识

    优化zxing 扫描二维码出现卡顿 扫描慢等现象:解决方案 :解决办法很简单,就是不仅仅使用聚焦框里的图像数据,而是采用全幅图像的数据.public PlanarYUVLuminanceSource ...

  3. 解决android扫描二维码时,用户禁止权限报错问题

    当我用ZBarDecoder.jar写了一个扫描二维码的程序,确实实现了扫描功能.组长说如果用户禁止调用摄像头,那程序也不能崩溃.结果我一运行就崩溃了.在网上自己找了找,可以这样解决. try { m ...

  4. Android 扫描二维码demo

    demo下载链接:https://download.csdn.net/download/meixi_android/10779714 zxing依赖: compile 'cn.yipianfengye ...

  5. Android扫描二维码

    第一步 添加运行时权限 把清单文件中添加的权限在主页面添加运行时权限 1.添加依赖 //Rxpremission管理权限compile 'com.tbruyelle.rxpermissions:rxp ...

  6. Android 扫描二维码(使用华为统一扫码服务 + 附源码)

    前言   现在无论什么APP都会有一个扫一扫的功能,网络上的各个软件的扫码功能也都大同小异,当然你想要自定义属于自己APP的扫码界面及功能的话,还是要花一番功夫的,不过做Demo,用第三方的就可以了. ...

  7. android 扫描二维码支付,Android 扫码盒子全局接收付款码(全局事件上层接收多重下发)...

    实现MainActivity,然后接收到的内容,通过接口回调,依次下发到各个业务 String barcode = ""; // 收到的码结果 String check = &qu ...

  8. android 扫描二维码黑屏,android-zxing回来扫描界面出现黑屏的解决方案

    android--zxing返回扫描界面出现黑屏的解决方案 修改CameraManager类中的openDriver(SurfaceHolder holder)方法: public void open ...

  9. android 扫描二维码黑屏,android--zxing返回扫描界面出现黑屏的解决方案

    修改CameraManager类中的openDriver(SurfaceHolder holder)方法: public void openDriver(SurfaceHolder holder) t ...

最新文章

  1. 计算机视觉 | 哥大读博五年总结
  2. 【Python】 linecache模块读取文件
  3. 数据查询和业务流分开_TiDB HTAP 助力小红书业务升级
  4. ubuntu1204 dvd 用tweak后界面起不来 swap设置4g足够32位系统软件用
  5. 因学习需要记录自己的计划,故遍历了自己的目录
  6. gdi win7奔溃_gdiplus.dll 32/64位
  7. protel99se进阶视频教程(手把手教你画51单片机开发板)
  8. 自适应数字加密/收藏品NFT市场网站HTML5模版
  9. HLS中pragma的归纳总结(入门级)
  10. 别被你的双眼所欺骗 100张神奇的视觉欺骗图
  11. 中文 APB Artist Sessions Presents- SHAUN BARRETT
  12. ESXi创建的虚机只能ping通自己IP无法ping通网关的问题排查
  13. java 三维旋转立方体_java - 如何通过旋转来计算立方体的所有方向,而不重复方向? - SO中文参考 - www.soinside.com...
  14. 集束搜索beam search和贪心搜索greedy search
  15. image jpeg
  16. 企业申请3C认证,需要提交哪些资料?
  17. PB处理BLOB类型的方法
  18. 游戏开发初学者的10个建议
  19. 99元包月,每周鲜花送上门,看好!
  20. 搭配Online:斥资$500000美元!沙特为何抄底疫情重灾股?

热门文章

  1. 基于微信平台的“快递超市”设计
  2. 笔记本win10引用账户当前已锁定,且可能无法登录(已解决)
  3. 嵌入式物联网学习方法
  4. 数据分析 - 跨境电商爬虫成长记 之 第一篇:python常用爬虫框架与工具
  5. matlab的摆线的两拱,一种拱轴线为摆线的拱桥的设计方法与流程
  6. 硬件nat关闭还是开启_潜在的NAT加速问题和冲突以及开关建议
  7. sql server 数据库目录名无效解决办法
  8. ChatGPT介绍与使用场景
  9. 中国电子学会scratch等级考试三级历年真题解析【持续更新 已更新至2022年9月】
  10. AE片头模板 闪光特效能量爆炸效果logo展示视频模板