想将zxing库集成到我的应用程序中

时间:2015-02-18 05:05:45

标签: android

我使用本教程http://www.androidaz.com/development/zxing-qr-reader-direct-integration整合zxing库,但我无法连续阅读QR码,正在阅读中。

2 个答案:

答案 0 :(得分:1)

我最近完成了QR码扫描仪的工作。你应该使用这个library。正确解释如何使用它,它的工作原理很好。它还可以连续扫描,因此它也可以解决您的问题。

如果您需要任何其他帮助,请告诉我。

答案 1 :(得分:1)

对我来说, 我将使用原始的Intent方法为您的情况。应该有一个用于条码扫描的zxing库的android版本。 与您提到的页面不同,您必须在androidManifest.xml里面的应用程序标记中包含以下内容:

<activity
        android:name="com.google.zxing.client.android.CaptureActivity"
        android:clearTaskOnLaunch="true"
        android:screenOrientation="sensorLandscape"
        android:stateNotNeeded="true"
        android:theme="@style/CaptureTheme"
        android:windowSoftInputMode="stateAlwaysHidden" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.google.zxing.client.android.SCAN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

在您的活动类中,您应该使用意图调用条形码扫描程序,如下所示:

private final int QR_CODE = 0;
try {
        Intent intent = new Intent(
                "com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
        intent.putExtra("SCAN_MODE", "SCAN_MODE");
        startActivityForResult(intent, QR_CODE);
} catch (Exception e) {
            //Handle the case when barcode scanner is absence.
}

使用以下方法处理条形码扫描仪的结果:

@Override
protected void onActivityResult(int requestCode, int resultCode,
        Intent intent) {
    if (requestCode == QR_CODE) {
        if (resultCode == RESULT_OK) {
            String code = intent.getStringExtra("SCAN_RESULT");
//you should handle recall of the barcode scanner using intent here
        }else if (resultCode == RESULT_CANCELED) {{
            //user cancelled barcode scanning process.
        }
    }
}

希望上面的代码可以为您的案例提供一些想法。