在Android应用程序中单击按钮上调用条形码扫描器

use*_*237 11 android barcode-scanner zxing

我已经下载了zxing 1.6,并且能够通过它成功运行独立的条形码扫描仪.现在这个扫描仪在另一个项目和(CaptureActivity),我有我的应用程序的不同项目MyProj,我想要做的就是点击我的项目中的按钮调用另一个项目中的CaptureActivity,如何在我的项目中导入整个项目项目或我该怎么做才能使这个工作.提前感谢

Waz*_*_Be 36

我认为"复制"条形码扫描器并将其包含在您的应用程序中可能会使您的项目超载.您当然应该使用扫描仪中的Intent:

从这里:http://code.google.com/p/zxing/wiki/ScanningViaIntent

如果您的Android设备上安装了条形码扫描器,您可以让它扫描并返回结果,只需发送一个Intent即可.例如,您可以连接按钮来扫描QR码,如下所示:

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有关扫描产品条形码或要求条形码扫描器为您编码和显示条形码的更多选项,请参阅此源文件:

http://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/Intents.java

以下是我们的测试应用程序的一些来源,它展示了如何使用它们:

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

IntentIntegrator

我们还开始创建一个包含上面一些细节的小型类库.请参阅IntentIntegrator以获得更简单的集成方法.特别是这将处理尚未安装条形码扫描仪的情况.

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java

通过URL从Barcode Scanner v2.6开始,您还可以从浏览器中的URL启动应用程序.简单地创建一个指向http://zxing.appspot.com/scan的超链接,条形码扫描器将提供启动来处理它.用户还可以选择始终自动打开条形码扫描仪.

注意:此URL并非用于在浏览器中提供实际网页,它只是启动本机应用程序的一个钩子.

已知问题用户jamesikanos报告以下'gotcha':

使用launchMode创建TabHost活动"singleInstance"使用"开始扫描"按钮创建子活动(使用此按钮使用IntentIntegrator启动zxing)您的子活动中的onActivityResult将立即返回"取消"onActivityResult随后从未调用

  • 如果您在未设置包的情况下启动意图,您将获得安装的默认二维码阅读器(在我的情况下为 qr druid)或如果您有多个应用选择器对话框 (2认同)