Android Zxing(条码库)。如何更改后扫描意图

时间:2013-01-16 13:28:05

标签: android zxing

我正在开发一个Android应用程序,我需要嵌入Zxing扫描程序。应用程序应允许用户扫描QR代码,然后存储产品的QR代码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的整个库,因为我想要条码扫描器来处理它,但似乎我必须做的比我已经做的更多。

2 个答案:

答案 0 :(得分: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");
        }
    }
}

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

答案 1 :(得分:1)

更好的是,使用项目提供的IntentIntegrator类。它包含了此处列出的所有详细信息,其文档已经告诉您如何将其集成到您的应用中。如果没有安装应用程序,它会为您处理一些事情。