android扫码功能集成

android集成扫码功能

1、zxing扫码集成

2、zbar扫码集成

3、华为官方提供的扫码集成(推荐使用)

上面的三种集成中,相信集成过的都知道
第一种zxing扫码集成,遇到多种机型和扫码识别成功率都有很多缺陷;
第二种扫码可以,但是相册扫码功能有待挖掘,不支持业务需要,但是相比较于第一种来说,识别的成功率要高出很多
而这里,我们在踩过上面的坑后,都要果断的抛弃他们,因为有更牛逼的更简单的操作集成来了,这里我们只介绍第三种,前二种大家可以百度看看

华为扫码功能集成介绍

  1. 整个项目的build.gradle下加入代码:
buildscript {
    repositories {        
        maven {url 'http://developer.huawei.com/repo/'}
    }    
}
allprojects {
    repositories {       
        maven { url 'http://developer.huawei.com/repo/'}
    }
}

  1. 在app的build.gradle下加入代码
dependencies{ 
  implementation 'com.huawei.hms:scanplus:1.1.1.301' 
 }

  1. 在混淆代码proguard-rules.pro中加入代码
-keep class com.huawei.**{*;}
  1. 在AndroidManifest.xml中加入代码
 
 
 
 
 
 


 


  1. 主页面调用启动扫码权限(这里省略了手机权限的调用)
关于手机权限的获取方式,这里推荐集成包(具体使用方式可百度)
 implementation 'com.hjq:xxpermissions:5.5'
  1. 主页面调用扫码功能
//REQUEST_CODE_SCAN_GALLERY  常量,自己定义一个值,用于回调使用
 ScanUtil.startScan(getActivity(), REQUEST_CODE_SCAN_GALLERY, new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE).create());
  1. 回调功能
在onActivityResult中加入代码获取回调二维码的链接并执行逻辑
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE_SCAN_GALLERY && resultCode == 0){
            handleAlbumPic(data);
        }
}

private void handleAlbumPic(Intent data) {
	 HmsScan obj = null;
	  if (null!= data && null!= data.getParcelableExtra(ScanUtil.RESULT)){
                obj = data.getParcelableExtra(ScanUtil.RESULT);
      }
       String resultStr = obj.originalValue;
       //...剩下处理自己的逻辑
}

android扫码功能集成_第1张图片

END

还有什么不明白的自己集成试试或者看看官方的华为扫码服务

你可能感兴趣的:(Android开发,zxing,zbar,HmsScan,扫码功能集成,android扫码功能)