android应用之间依赖的解决办法 在应用中调用条形码识别程序zxing

  次阅读 作者:智能小宝 来源:互联网 2016-01-13 21:45 我要评论(0)

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的时候。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...