美文网首页
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