android - 在 android 应用程序中单击按钮调用条码扫描器

标签 android barcode-scanner zxing

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

最佳答案

我认为“复制”Barcode Scanner 并将其包含在您的应用程序中可能会使您的项目重载。您当然应该使用扫描仪的 Intent:

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

如果您的 Android 设备上安装了条码扫描器,您可以让它为您扫描并返回结果,只需向它发送一个 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 为您编码和显示条形码,请参阅此源文件:

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

Intent 整合器

我们还开始创建一个小型类库,其中封装了上述一些细节。请参阅 IntentIntegrator 以了解可能更简单的集成方式。特别是这将处理尚未安装条码扫描器的情况。

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

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

注意:此 URL 并非旨在为浏览器中的实际网页提供服务,它只是用于启动 native 应用程序的 Hook 。

已知问题 用户 jamesikanos 报告了以下“陷阱”:

创建一个启动模式为“singleInstance”的 TabHost Activity 使用“开始扫描”按钮创建子 Activity (从此按钮使用 IntentIntegrator 启动 zxing) 您的子 Activity 中的 onActivityResult 将立即返回为“已取消” onActivityResult 不会随后被调用

关于android - 在 android 应用程序中单击按钮调用条码扫描器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5604550/

相关文章:

windows-phone-7 - 如何在Windows Phone 7中使用zxing库

java - 使用 jsoup 读取 HTML

android - Android 中布局的前景图像

android - 如何传递 Intent 要求用户选择任何应用程序扫描二维码?

google-chrome-devtools - 为什么条码扫描器会在 chrome 中打开 Chrome 开发者控制台?

android - Android 5或6(或 future 版本)是否有像iOS一样内置的条形码扫描API?

java - 如何在 Android 中使用 Genderize io Api 获取用户性别

java - OpenCV - 在视频和图像上查找黑板边缘

iphone - 运行扫描测试时出现 Zxing 错误

android - android中ZXing和ZBar的解码速度