您的位置:首页 > 其它

给Zxing项目简化后打包,可直接调用条形码扫描

2013-03-19 09:49 225 查看
最近研究条形码扫描,搜了很多发现一个Zxing的开源项目,但是用来很不爽。因为使用方法很麻烦,要么是先在用户的机器按照他们的扫描软件,然后用自己的程序去启动他们的Actvity;还有一个就是,在网上找到简化后的Zxing项目源码,放到自己的项目中用于调用。
觉得这两张都不是很爽,于是就研究了下打了个包,就可以直接调用了。

说明:由于打包不能打进资源文件,所以扫描的那个节目我是用代码生成的;还有扫描完成时本来是会有一个提示音,由于要打包我就把提示音删除了。

下面就来说说使用步骤:

1.导入库文件: 首先你需要Zxing的核心库,这里下载:
点击打开链接 。然后是我打包文件,这里下载:点击打开链接

2.添加权限与声明Activity: 在你项目的AndroidManifest.xml文件中 添加以下权限:

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
必须对扫描界面的Actvity做声明,虽然它不在你的项目里面,但它在我的包中,如果不声明就会在启动它是报错(声明必须是全称):

<activity android:name="com.google.zxing.simplify.CaptureActivity"></activity>
3.编写调用代码:

启动Activity的代码:

Intent intent=new Intent(MainActivity.this,CaptureActivity.class);
startActivityForResult(intent, 1); //这里的1是用来返回时区分是那个Activity返回的,没有太多的意义
获得返回的结果:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode==1) {
if (resultCode == 1) { //成功
Bundle bundle = intent.getExtras();
Toast.makeText(this,"Contents:"+bundle.getString("Result")+"\nFormat:"+bundle.getString("Format"),
Toast.LENGTH_LONG).show();
}
if (resultCode == -1) { //失败
Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
}
}
}
这里就完成了,我如果还有朋友不会,下面是我的例子程序。这里下载:点击打开链接

特别提示: 这里我只返回了两个比较常用内容,编号内容和编码格式;其实还有很多其他的返回内容,如果觉得这个不够用,可以使用我下面的项目自行封装打包。

在项目中搜索 Input Result 字段你就能看到在什么地方修改了。

这里是项目源码: 点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐