在build.gradle中
implementation 'com.google.zxing:core:3.2.1' //zxing核心依赖
implementation 'com.journeyapps:zxing-android-embedded:3.3.0' //生成二维码依赖,此处可以不用
为了实现竖屏扫描,新建一个activity,具体代码如下
public class ScanActivity extends CaptureActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);}
}
在要实现扫描操作的点击事件中
IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
// 设置要扫描的条码类型,ONE_D_CODE_TYPES:一维码,QR_CODE_TYPES-二维码,不设置就默认都可以
//integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setCaptureActivity(ScanActivity.class);
integrator.setPrompt("请扫描二维码"); //底部的提示文字,设为""可以置空
integrator.setCameraId(0); //前置或者后置摄像头
integrator.setBeepEnabled(false); //扫描成功的「哔哔」声,默认开启
integrator.setBarcodeImageEnabled(true);//是否保留扫码成功时候的截图
integrator.initiateScan();
扫描结果
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null) {
//此参数既是扫描结果,可以赋值给想要的控件
String result = scanResult.getContents();
edtCase.setText(result);
}
}