1.添加依赖
dependencies {
compile 'com.journeyapps:zxing-android-embedded:3.5.0'
}
2.在AndroidManifest中添加以下权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
3.创建一个空activity继承CaptureActivity
public class ScanActivity extends CaptureActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_scan);
}
}
4.添加点击事件开启扫一扫
scanBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator intentIntegrator = new IntentIntegrator(MainActivity.this);
intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
intentIntegrator.setCaptureActivity(ScanActivity.class);
intentIntegrator.setPrompt("请扫描二维码");//底部的提示文字
intentIntegrator.setCameraId(0);//前置或者后置摄像头
intentIntegrator.setBeepEnabled(true); //扫描成功的提示音,默认开启
intentIntegrator.setBarcodeImageEnabled(true);//是否保留扫码成功时候的截图
intentIntegrator.initiateScan();
}
});
6.在onActivityResult方法中处理返回结构
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode,resultCode,data);
if(scanResult!=null){
String result = scanResult.getContents();
Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
}
super.onActivityResult(requestCode, resultCode, data);
}