1、问题描述

项目中集成了华为的统一扫码SDK,开发一款二维码扫描的APP,项目是使用Android Studio开发,通过调用HMS Scan SDK的api进行实现。

但是遇到了一个问题:通过((HmsScan) obj).getOriginalBitmap()这个方法获取到的图片是空的。

相关的配置如下:

手机信息:Huawei Mate30

SDK版本信息:com.huawei.hms:scan:2.5.0.300

问题代码如下:

代码在编译时并未报错,只是在运行时获取到的对象为空,这个问题该如何解决呢?下面我们一起来看一下正确的做法是怎样的吧。

2、解决方案

实际上关于使用扫码SDK获取扫描成功后的原图这个功能在官方的开发文档中是有提及的,可能我们平时都没注意到。

首先我们需要使用Customized View Mode这种扫码模式才行,在该模式下的API文档中有一个enableReturnBitmap这个方法,我们可以使用该方法进行设置扫码成功后返回原图,如下图中的代码所示:

设置完了之后,等待扫描成功之后,再通过HmsScan对象使用getOriginalBitmap()方法获取原图即可,需要注意的点我都在上图中用红色框标注出来了。

通过上面的方法我们就完成了使用统一扫码SDK获取扫描成功之后的原图啦,这个问题就顺利解决啦!

完整的开发文档如下:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-customized-view-0000001050042012

欲了解更多更全技术文章,欢迎访问 https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh