美文网首页
android集成华为统一扫码功能。

android集成华为统一扫码功能。

作者: 背锅TV丶伴奏大师 | 来源:发表于2021-06-25 11:48 被阅读0次

统一扫码:支持条形码和二维码扫描。
前言:集成过zxing的都知道,这个框架真的不好用,不灵活,很难扫出来。但是华为统一扫码服务(Scan Kit)就不一样了。真的好用。
集成步骤:
1.引入依赖:

repositories {
        // 配置HMS Core SDK的Maven仓地址。
        maven {url 'https://developer.huawei.com/repo/'}
    }
allprojects {
    repositories {
   
        // 配置HMS Core SDK的Maven仓地址。
        maven {url 'https://developer.huawei.com/repo/'}

    }

华为官方给我们提供了两种类型的依赖包:


1111.png

按需接入:

implementation 'com.huawei.hms:scanplus:1.3.2.300'

然后注意动态申请相机权限
2.扫码代码:

/**
     * 扫描二维码
     */
private final int REQUEST_CODE_SCAN_DEFAULT_MODE=200
    private void startScan(){
        HmsScanAnalyzerOptions options=new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();
        ScanUtil.startScan(this,REQUEST_CODE_SCAN_DEFAULT_MODE, options);
    }
@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode != RESULT_OK || data == null) {
            return;
        }
        if(requestCode==REQUEST_CODE_SCAN_DEFAULT_MODE){
//获取扫码结果
            HmsScan hmsScan=data.getParcelableExtra(ScanUtil.RESULT);
            if(!TextUtils.isEmpty(hmsScan.originalValue)){

            }
        }
    }

3.根据url生产二维码(文字也可以生成):

private int width=700, height=700;//二维码尺寸
    private Bitmap resultImage;//所需结果
    private int type = 0;//码类型。0=QR Code、1=Data Matrix、2=PDF417、3=Aztec
    private int margin = 1;//边距
    private int color = Color.BLACK;//码颜色
    private int background = Color.WHITE;//码背景色

    /**
     * 生产二维码
     * @param url  /string文字也可以
     */
    private void generateCode(String url){
        HmsBuildBitmapOption options = new HmsBuildBitmapOption.Creator().setBitmapMargin(margin).setBitmapColor(color).setBitmapBackgroundColor(background).create();
        try {
            resultImage = ScanUtil.buildBitmap(url, type, width, height, options);
        } catch (WriterException e) {
            e.printStackTrace();
        }
    }

结语:参考:https://developer.huawei.com/consumer/cn/forum/topic/0201248342859390343?fid=18
https://mp.weixin.qq.com/s/umN0saur3pezrtCqKpxJ6A

相关文章

网友评论

      本文标题:android集成华为统一扫码功能。

      本文链接:https://www.haomeiwen.com/subject/jwonyltx.html