Android 使用Zxing2.1 来读取二维码

来源:互联网 发布:孙策玉玺换兵马 知乎 编辑:程序博客网 时间:2024/05/01 12:35

【鸣谢参考】:http://mukeshyadav4u.blogspot.com/2012/06/integrating-zxing-qr-code-scanner-into.html

用连接给的方法,发现在读成功之后没有返回,然后就看看了源码,得到原因是CaptureActivity是根据来源进行转发处理的,在intent中进行设置来源的Action就好了。

主要流程:

1、下载zxing的源码 

用svn checkout  http://zxing.googlecode.com/svn/trunk/ 源码

2、将android项目导入到eclipse中,并标记为libproject

3、创建自己的项目,并且应用第二部中的libprpoject

4、在自己的 AndroidManifest.xml 中增加如下的内容:

 <activity            android:name="com.google.zxing.client.android.CaptureActivity"            android:configChanges="orientation|keyboardHidden"            android:screenOrientation="landscape"            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"            android:windowSoftInputMode="stateAlwaysHidden" >           <!--  <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter> -->            <intent-filter>                <action android:name="com.google.zxing.client.android.SCAN" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>        </activity>
5、调用读二维码的服务

我是用一个button来进行演示的

public void scan(View view){Intent intent = new Intent(this,CaptureActivity.class);intent.setAction(Intents.Scan.ACTION);intent.putExtra(Intents.Scan.MODE, Intents.Scan.QR_CODE_MODE);intent.putExtra(Intents.Scan.RESULT_DISPLAY_DURATION_MS, 0L);startActivityForResult(intent, 0);}


6、在 com.bbcvison.zxing.test.MainActivity.onActivityResult 中进行对读到的二维码进行处理,读卡的结果的key值可以可以参考:
com.google.zxing.client.android.Intents.Scan
附件:
CaptureActivity.rar 是我生成的libproject
CaptureActivityTest.rar 是我的演示程序
再次感谢:http://mukeshyadav4u.blogspot.com/2012/06/integrating-zxing-qr-code-scanner-into.html
[全文完]