集成前准备
首先在Github上下载google的zxing源代码
[zxing项目下载地址](https://github.com/zxing/zxing)
下载下来的项目目录如下所示,我们只需要红方框中的目录文件

如何还需要下载zxing的jar包,zxing的jar包需要自己下载。
创建项目并将android作为module导入项目中


不要忘记将下载的jar包作为library导入module中。

更改android中build.gradle的apply plugin: 'com.android.application'改为apply plugin: 'com.android.library'

然后删除defaultConfig的appId
defaultConfig {
applicationId "com.google.zxing.client.android"
}
将android module 的 minSdkVersion 改成与主工程一致。
同步一下。
删除AndroidManifest中CaptureActivity的如下内容
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
不要忘记application中的label,logo和icon和也删掉

将android-core里的util工具类放进android module中

在android moudle 的res中有很多的国际化需要的values文件,只需要保留values-zh-rCN即可。
让主程序依赖android moudle

如过报红的话该导包的导包(工具类,R文件),switch 语句改为if else
如果你的SDK升到28的话会出现如下错误:

删除new ArrayList()。
主App中添加如下权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
集成测试
在申请相关权限后(可以先在手机权限管理中获取全部权限),在MainActivity中打开CaptureActivity后看到如下的界面说明本次集成成功。
Intent intent=new Intent(this, CaptureActivity.class);
startActivityForResult(intent,0);

网友评论