【发布时间】:2013-03-08 01:54:31
【问题描述】:
我正在编写 android 应用程序,我的客户端需要一个条形码扫描仪。他们真的很具体,所以他们想要的布局是这样的:
如果找到二维码 - 它会自动跳转到另一个窗口。如果手动按下 - 您将被要求手动输入并继续应用程序的其余部分。
所以基本上我可以将 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)
也许有人知道如何将单独的应用添加到我的活动中?或者其他方式来实现这一点?
【问题讨论】:
-
既然 zxing 是开源的,你可以使用他们的代码并创建自己的视图......为什么要使用他们现有的应用程序?
-
首先他们自己不推荐它,我明白为什么。通过这种方式,我只会专注于链接到他们的应用程序,而不是整个应用程序。如果他们更新了一些东西,我也会得到最新的更新(当然如果用户决定更新条形码扫描仪应用程序)。
-
如果您需要自定义扫描屏幕,那么我认为使用他们的代码并创建自己的布局将是一个好主意,因为您无法更改其他应用程序的视图...