Android 将zxing条形码扫描仪嵌入活动

Android 将zxing条形码扫描仪嵌入活动,android,embed,zxing,Android,Embed,Zxing,我正在编写android应用程序,我的客户端需要一个条形码扫描仪。他们对此非常具体,因此他们想要的布局如下: IntentIntegrator integrator = new IntentIntegrator(this); integrator.initiateScan(); 如果发现二维码,它会自动跳转到另一个窗口。如果按manual键,系统会要求您手动键入并继续应用程序的其余部分 因此,基本上我可以将zxing代码嵌入到我的应用程序中,并将其添加到活动中,但我不希望这样,我希望将其作为

我正在编写android应用程序,我的客户端需要一个条形码扫描仪。他们对此非常具体,因此他们想要的布局如下:

IntentIntegrator integrator = new IntentIntegrator(this);
integrator.initiateScan();

如果发现二维码,它会自动跳转到另一个窗口。如果按manual键,系统会要求您手动键入并继续应用程序的其余部分

因此,基本上我可以将zxing代码嵌入到我的应用程序中,并将其添加到活动中,但我不希望这样,我希望将其作为一个单独的应用程序

我现在有一个单独的活动,叫做:

IntentIntegrator integrator = new IntentIntegrator(this);
integrator.initiateScan();
我也试过:

IntentIntegrator intentIntegrator = new IntentIntegrator(this);
Intent i = intentIntegrator.initiateCustomScan();

LocalActivityManager mgr = getLocalActivityManager();

Window w = mgr.startActivity("unique_per_activity_string", i);
View wd = w != null ? w.getDecorView() : null;

if(wd != null) {
  scanButton.addView(wd);
}
但是我得到了java.lang.SecurityException:

03-19 12:22:55.890: E/AndroidRuntime(29394): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.menucard.barcode.scan/com.barcode.scan.ScanActivity}: java.lang.SecurityException: Requesting code from com.google.zxing.client.android (with uid 10139) to be run in process com.menucard.barcode.scan (with uid 10169)

也许有人知道如何在我的活动中添加一个单独的应用程序?或者其他方法来实现这一点?

@MindaugasSvirskas,你最后的评论正是我现在要发布的内容:-)我过去在几个应用程序中遇到过同样的问题,相信我,只要利用意图,这就是整个安卓系统的设计方式,支持应用程序之间的交互。iOS程序员可以很容易地将扫描Zxing布局集成到他们自己的布局中,但我们应该利用意图,我同意。

很遗憾,你不能通过
意图将外部应用嵌入到另一个应用中。首先,这里的外部应用需要接管整个屏幕,并且处于横向模式


您应该编写自己的应用程序,但可以在应用程序中重复使用部分条形码扫描仪,这样就不会完全从头开始。请不要复制
AndroidManifest.xml
文件。我认为,考虑到不同的用户界面,它显然也不会与条形码扫描仪混淆。剩下的就是确保您遵守Apache许可证的条款(简单)。

因为zxing是开源的,所以您可以使用他们的代码并创建自己的视图。。。你为什么要使用他们现有的应用程序?首先,他们自己不推荐,我明白为什么。通过这种方式,我只关注他们应用程序的链接,而不是整个应用程序。如果他们更新了一些东西,我也会得到最新的更新(当然,如果用户决定更新条形码扫描仪应用程序)。如果你需要自定义扫描屏幕,那么我认为使用他们的代码并创建自己的布局将是一个好主意,因为你不能更改其他应用程序的视图…+1是的,我想过编写自己的扫描应用程序,你能告诉我应该参考哪个文件夹的文件吗?是CaptureActivity.java吗?到目前为止,我已经成功地将整个源代码移植到我的项目中,这只是为了学习,我并不打算复制,因为我对android开发完全陌生。我不能鼓励你从复制应用开始。开始写你自己的应用程序,除了扫描。直到你有了这一水平的知识,你将不会知道如何使用条形码扫描仪的来源无论如何。