1,添加依赖
implementation 'com.journeyapps:zxing-android-embedded:3.4.0' implementation 'com.google.zxing:core:3.4.1'
2,添加权限
<uses-permission android:name="android.permission.CAMERA" />
3,注册 journeyapps 的 CaptureActivity
<activity android:name="com.journeyapps.barcodescanner.CaptureActivity" android:screenOrientation="fullSensor" tools:replace="android:screenOrientation" />
4,代码。可直接在“扫描二维码”按钮事件里写代码,也可以使用新的Activity。
代码只涉及很简单的两部分
第一部分 开启扫描
IntentIntegrator integrator =new IntentIntegrator(this); integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES); integrator.setPrompt("扫描二维码");//底部的提示文字,设为""可以置空 integrator.setCameraId(0);//前置或者后置摄像头 integrator.setBeepEnabled(false);//扫描成功的「哔哔」声,默认开启 integrator.setBarcodeImageEnabled(true);//是否保留扫码成功时候的截图 integrator.initiateScan();
第二部分 获取扫描结果
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if (result !=null) { if (result.getContents() ==null) { LogUtil.e(TAG, "扫码取消!"); }else { LogUtil.e(TAG, "扫描成功: " + result.getContents()); } }else { super.onActivityResult(requestCode, resultCode, data); } }