0

我正在开发一个 Android 应用程序,我需要嵌入 Zxing 扫描仪。应用程序应允许用户扫描二维码,然后存储产品的二维码 ID,并从 XML 文件中解析它。到目前为止,我已经使用了简单的代码:

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage(getPackageName());        
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);

这段代码的作用是扫描产品并将我带回到我的应用程序的前一个屏幕。我没有包含来自 Zxing 的整个库,因为我希望条形码扫描仪能够处理它,但似乎我必须做的比我已经做的更多。

4

2 回答 2

3

您需要创建一个onActivityResult在条形码扫描器完成后将获得回调的方法。在那里,您将处理代码字符串并做任何您喜欢的事情。

/*Here is where we come back after the Barcode Scanner is done*/
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            // contents contains whatever the code was
            String contents = intent.getStringExtra("SCAN_RESULT");

            // Format contains the type of code i.e. UPC, EAN, QRCode etc...
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

            // Handle successful scan
            Log.i("TAG",format + "\t" + contents);
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel. If the user presses 'back' before a code is scanned.
            Log.i("TAG","Canceled");
        }
    }
}

此示例仅记录结果,您需要对其进行扩展以使用从扫描仪返回的信息执行任何您想要的操作。

于 2013-01-16T14:20:24.803 回答
1

更好的是,使用IntentIntegrator项目提供的类。它包含了这里列出的所有细节,它的文档已经告诉你如何将它集成到你的应用程序中。它为您处理诸如安装应用程序(如果尚未安装)之类的事情。

于 2013-01-16T16:46:02.393 回答