我已经下载了 zxing 1.6 并且能够通过它成功地运行一个独立的条码扫描器。现在这个扫描仪在另一个项目和(CaptureActivity)中,我有我的应用程序的另一个项目,名为 MyProj,我要做的就是点击我的项目中的按钮,调用另一个项目中的 CaptureActivity,我如何将整个项目导入我的项目或我该怎么做才能使它正常工作。提前致谢
1 回答
我认为“复制”条形码扫描仪并将其包含在您的应用程序中可能会使您的项目超载。你当然应该使用扫描仪的意图:
从这里:http ://code.google.com/p/zxing/wiki/ScanningViaIntent
如果您的 Android 设备上安装了 Barcode Scanner,您可以让它为您扫描并返回结果,只需向其发送 Intent。例如,您可以连接一个按钮来扫描二维码,如下所示:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
有关更多选项,例如扫描产品条形码,或要求 Barcode Scanner 为您编码和显示条形码,请参阅此源文件:
以下是我们测试应用程序的一些来源,展示了如何使用它们:
意图积分器
我们还开始创建一个小型类库,用于封装上述一些细节。有关可能更简单的集成方法,请参阅 IntentIntegrator。特别是这将处理尚未安装条形码扫描仪的情况。
通过 URL 从 Barcode Scanner v2.6 开始,您还可以从浏览器中的 URL 启动应用程序。简单地创建一个指向http://zxing.appspot.com/scan的超链接,Barcode Scanner 将提供启动来处理它。用户还可以选择始终自动打开条形码扫描仪。
注意:这个 URL 并不是为了在浏览器中提供一个实际的网页,它只是一个启动本机应用程序的钩子。
已知问题用户 jamesikanos 报告以下“问题”:
使用launchMode“singleInstance”创建一个TabHost活动使用“开始扫描”按钮创建一个子活动(使用此按钮的IntentIntegrator启动zxing)您的子活动中的onActivityResult将立即返回,因为“取消”onActivityResult随后永远不会被调用