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

最近研究条形码扫描,搜了很多发现一个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 字段你就能看到在什么地方修改了。

这里是项目源码: 点击打开链接

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值