原博客地址: https://www.cnblogs.com/xch-yang/p/9540392.html
1.引入jar包和so文件(直接复制粘贴文件或者文件夹到 libs 目录下)
2. app build.gradle的android标签中加入如下代码
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
3. 将zbar包copy到自己的项目,然后将zbar中的来文件打开,更换自己项目的包名导包
4. 导入相关资源文件
drawable、drawable-hdpi、drawable-xhdpi、 layout、 raw文件和values文件 ,不要全部覆盖,需要什么文件复制到自己的项目即可
5. AndroidManifest.xml加入相关权限和扫描的Activity
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<activity android:name=".zbar.CaptureActivity" />
5. 调用扫描界面 获取扫描结果
在需要打开扫描界面的地方直接跳转至CaptureActivity(使用startActivityForResult)
private void goScan(){
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE_SCAN);
}
在onActivityResult的回调中即可获取扫描内容,如下
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_CODE_SCAN:
// 扫描二维码回传
if (resultCode == RESULT_OK) {
if (data != null) {
//获取扫描结果
Bundle bundle = data.getExtras();
String result = bundle.getString(CaptureActivity.EXTRA_STRING);
}
}
break;
default:
break;
}
}