AndroidStudio导入zxing包实现二维码扫描
- zxing包、zxing源码及本博客示例代码下载,下载地址:
[下载]
1、新建一个空白工程
2、将压缩包中的文件按目录顺序放入工程目录中
3、在项目中导入zxing.jar包
4、在..\src\main\res\values中打开string.xml,注意第一行标签代表的是自己的APP的名称,可自行修改。
同时在第二行添加“action_setting”的值
<resources>
<string name="app_name">填入自己的APP名称</string>
<string name="action_settings">设置</string>
.......
5、在项目中打开zxing的源码,将其中报错的源文件(主要是报错R找不到)顶部的import juicyactive.recodetest.R;改为自己的包名
6、在AndroidManifest.xml的application标签中添加zxing.android.CaptureActivity并添加相关权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="zxing.android.CaptureActivity"></activity>
</application>
7、在zing.andoird.CaptureActivity的handleDecode()函数中编写得到扫描结果后所做的操作。
/**
* 扫描成功,处理反馈信息
*
* @param rawResult
* @param barcode
* @param scaleFactor
*/
public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor) {
inactivityTimer.onActivity();
boolean fromLiveScan = barcode != null;
//这里处理解码完成后的结果,此处是用Toast显示结果
if (fromLiveScan) {
beepManager.playBeepSoundAndVibrate();
Toast.makeText(this,"内容为:" + rawResult.getText(), Toast.LENGTH_SHORT).show();
finish();
}
}
注意:
1、如果本身项目中的string.xml等文件中已有内容,只需要将string.xml等文件中的内容复制到自己项目中的对应文件中即可。
2、本文所提供的示例程序源码基于Android5.0,SDK版本为21.0,请注意修改成自己SDK版本