我使用本教程http://www.androidaz.com/development/zxing-qr-reader-direct-integration整合zxing库,但我无法连续阅读QR码,正在阅读中。
答案 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.
}
}
}
希望上面的代码可以为您的案例提供一些想法。