Android 如何在不安装条形码扫描仪应用程序的情况下使用ZXing库

Android 如何在不安装条形码扫描仪应用程序的情况下使用ZXing库,android,barcode,zxing,barcode-scanner,Android,Barcode,Zxing,Barcode Scanner,我一直在开发一个android应用程序来扫描条形码和二维码,并将结果发送到其他应用程序HTTP。我已经在互联网上阅读了大部分文档,这里是StackOverFlow,并使其正常工作。我可以在我的设备上运行独立的zxing android应用程序,也可以运行我自己的独立android应用程序,使用zxing intent扫描条形码。 但是,即使在阅读了这里的许多问题和互联网上的一些博客之后,我仍然无法得到我的严格要求 我想实现以下目标。 1.我不想在我的设备中安装一个单独的条形码扫描仪应用程序,以使

我一直在开发一个android应用程序来扫描条形码和二维码,并将结果发送到其他应用程序HTTP。我已经在互联网上阅读了大部分文档,这里是StackOverFlow,并使其正常工作。我可以在我的设备上运行独立的zxing android应用程序,也可以运行我自己的独立android应用程序,使用zxing intent扫描条形码。 但是,即使在阅读了这里的许多问题和互联网上的一些博客之后,我仍然无法得到我的严格要求

我想实现以下目标。 1.我不想在我的设备中安装一个单独的条形码扫描仪应用程序,以使我自己的应用程序能够扫描条形码。 2.我使用了以下代码

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, 0);
当我在设备中运行应用程序时,它会询问“选择应用程序以完成此操作”,并显示“Google”和“Google Goggles”,然后打开Google页面默认摄像头并扫描条形码。我希望CaptureActivtiy的默认捕获页面不是谷歌的扫描条形码页面。 3.我曾尝试在我自己的应用程序中使用ZXing作为库,但没有成功


你能告诉我做这件事到底哪里出错吗?

我发现zxing使用起来很复杂。然后我尝试使用ZBar Android版本库。这太简单了。 您可以从以下位置下载库:


在下载的包中,有一个非常简单的示例。只需遵循它或将示例包含到您的应用程序中即可。希望您的任务能够完成。

您表明您希望通过意图进行集成。这是推荐的方法,您可以让它更简单,并限制使用IntentIntegrator回复的应用程序列表。大约有5行代码:

然而,这与你所说的希望在你的应用程序中实现扫描相矛盾。你应该澄清你想要什么


如果是这样,您需要构建自己的扫描应用程序,并在android/中重用core.jar和一些条形码扫描仪。这是不受支持的-您只能靠自己。请不要克隆我们的应用。

您检查过了吗?我已经使用了它并解决了相同的问题。嘿,Hardik,谢谢您的回复。是的,我已经去了那个页面。我已经试过了,但是如何从我自己的应用程序中依赖zxing android项目,以及如何在这种情况下创建意图?实际上它是有效的,但是如果我没有在我的设备中安装条形码扫描仪应用程序,它会在谷歌默认捕获页面中打开,以捕获我不想要的图像。我想让Zxing的截图页面来截图。所以要补充一点。据我所知,zxing库不支持此功能。您必须使用外部应用程序,或者您必须在源代码中挖掘并使用源代码来实现此效果?我们可以使用zbar扫描二维码吗?我试过了,但没用。我们能做到这样吗?是的……当我实现时,它成功地为QRcode工作。首先,只需运行示例应用程序…它应该支持QRcode.ya。它成功了。在本例中,摄影机应用程序从单独的活动开始,其中摄影机预览将显示在帧布局上。但我想实现以下目标。当我点击活动中某个方法的按钮时,它应该打开相机并扫描,并将扫描结果提供给相同的方法,以便我从那里继续。如何使用Zbar实现这一点?回答@RaghavendraNilekani:startractivityforresult然而,应该警告的是,这使用了“GNU库或更低版本的通用公共许可证2.0 LGPLv2”。您应该小心在自己的源代码中使用它,因为这可能会影响您发布的内容,并迫使您在整个项目中提供开放源代码。所以不要对专有代码这么做。嗨,肖恩·欧文,谢谢你提供的信息。我不想克隆条形码扫描仪应用程序。我的要求很简单,我想使用条形码扫描器应用程序,而不需要在我的设备中明确安装它。我已经看过Intentitegrator方法,它清楚地告诉我‘它处理未安装条形码扫描仪的情况’。如果它未安装,它将要求从我不想要的商店安装。我想将条形码扫描仪应用程序集成到我的应用程序中,这样我就不想再从商店将其安装到我的设备上。嗨,肖恩·欧文,谢谢你提供的信息。我不想克隆条形码扫描仪应用程序。我的要求很简单,我想使用条形码扫描器应用程序,而不需要在我的设备中明确安装它。我已经看过Intentitegrator方法,它清楚地告诉我‘它处理未安装条形码扫描仪的情况’。如果它未安装,它将要求从我不想要的商店安装。我想将条形码扫描仪应用程序集成到我的应用程序中,这样我就不想再从商店将其安装到我的设备上。非常简单的要求。我想构建一个非常简单的android应用程序,在我的应用程序中使用条形码扫描仪API,而不是显式安装条形码扫描仪应用程序
@Sean,我很想听听你为什么说请不要克隆我们的应用程序。Apache2.0许可证的目的不是让开发人员能够克隆您的代码作为他们自己应用程序的起点吗?假设通过intent扫描时完全归属和遵守许可证是一个简单的实现,从用户体验的角度来看,这并不总是理想的。@RichardLeMesurier Apache 2许可证不授予商标权,而发布一个令人困惑的类似应用程序,具有相同的名称和徽标,违反了这些权利。这不是一个理论问题:人们用广告和恶意软件发布克隆。除此之外,我个人认为复制粘贴和OSS上的创新相比是令人厌恶的,但这只是一个要求。哪些作者有权获得。我诚恳地驳斥了这样一种观点,即由于克隆对其他人来说更容易或更有利可图,作者应该感到有义务放弃更多的权利。