展会信息港展会大全

android应用之间依赖的解决办法 在应用中调用条形码识别程序zxing
来源:互联网   发布日期:2016-01-13 21:45:33   浏览:2744次  

导读:android提供了一种机制,可以通过Intent复用多个应用的界面。比如可以在自己的应用中调用条形码识别程序zxing,然后返回条形码的结果。不过呢,这需要系统必须事先在手机上安装zxing的条码扫描工具。否则,会报告......

android提供了一种机制,可以通过Intent复用多个应用的界面。比如可以在自己的应用中调用条形码识别程序zxing,然后返回条形码的结果。

不过呢,这需要系统必须事先在手机上安装zxing的条码扫描工具。否则,会报告ActivityNotFoundException。

对于zxing来讲,提供了一个集成API,使用者可以通过这个集成API调用ZXING的条码Activity。如果开发使用zxing的应用程序,并且分发给消费者使用。不能确定用户是否已经安装zxing。那么应该:

如果用户已经安装zxing,则使用zxing的activity;

如果用户没有安装zxing,提示用户安装,并引导用户通过android market下载安装。

zxing已经考虑的这个需求,在代码库中提供了这方面的支持。见:

http://code.google.com/p/zxing/wiki/ScanningViaIntent

的IntentIntegrator部分。

可以将:

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android

目录下的两个类,复制到自己项目中即可。

可参见我写的简单示例:

http://easymorse.googlecode.com/svn/tags/android.zxing.install-0.1/

那么,当未安装zxing情况下,点击如下按钮:

将弹出提示框:

点击yes,会引导进入android market下载安装zxing条码工具。

其实看看源代码,可以发现,zxing的集成API,无非是在启动zxing activity的时候,捕获了ActivityNotFoundException,然后通过intent调用android market应用安装。

应该说,还有一种办法来集成zxing,那就是把zxing作为类库加入到自己应用程序的APK中,在:

http://code.google.com/p/zxing/wiki/InterestingLinks

的projects and products using zxing的android部分,可以看到既有通过intent调用的(见 via intent),也有embedded,即将zxing库嵌入到应用中的。

后者的缺点有两个:

如果zxing版本更新,需要重新打自己应用的包,更新zxing的类库包;

旧版本的zxing包嵌入在应用中,可能不支持比较新的设备。

因此,我们在开发中选择比较轻量级的做法,通过intent的方式使用zxing。

这种方式我们也会用于其他类似场合,在需要别的应用程序activity的时候。

赞助本站

人工智能实验室

相关热词: 条形码 识别 zxing

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港