这篇博客介绍接入Zxing的第二种方式;利用github上的一个封装过的zxing库库来实现我们的需求;
1.添加依赖
compile 'cn.yipianfengye.android:zxing-library:1.9'
2.请求权限
//6.0后要代码中请求权限
requestPermissions(new String[]{Manifest.permission.CAMERA}, 1);
//这里就不多解释了,上篇博客说的很细了
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 1:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
findView();
} else {
// Permission Denied
Toast.makeText(MainActivity.this, "CALL_PHONE Denied", Toast.LENGTH_SHORT)
.show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
3.开启
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, 0);
//回调中拿到结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
//处理扫描结果(在界面上显示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
}
其实,这个库还有很多其他功能,这里就不多说 了, 之把最常用了将来下;