我正在编写Android应用程序,我的客户端需要一个条形码扫描器。他们非常关注它,所以他们想要的布局是这样的:
如果找到qr代码 - 它会自动跳转到另一个窗口。如果手动按下 - 则会要求您手动键入并继续应用程序的其余部分。
所以基本上我可以将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)
也许有人知道如何在我的活动中添加单独的应用程序?或其他方法来实现这一目标?
答案 0 :(得分:1)
答案 1 :(得分:1)
不幸的是,您无法通过Intent
在其他应用中嵌入外部应用。这里的外部应用程序需要接管整个屏幕,并且处于横向模式,对于初学者来说。
您应该编写自己的应用程序,但可以在应用程序中重复使用部分条形码扫描程序,这样就不会完全从头开始。请不要复制AndroidManifest.xml
文件。我认为,鉴于不同的UI,它也显然不会与条形码扫描器混淆。剩下的就是确保遵循Apache许可证的条款(简单)。