android – ZXing二维码/条码扫描

我试图通过触发一个意图将QRCode扫描仪集成到我的应用程序中
我使用的代码是以下代码

            Intent intent = new Intent("com.google.zxing.client.android.SCAN");

            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");

            startActivityForResult(intent, 0);

// Response集合

  public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
    if (resultCode == RESULT_OK) {
    // Handle successful scan
    String capturedQrValue =
    intent.getStringExtra("SCAN_RESULT");
    Log.i("info", "captureQrValue :" + capturedQrValue);
    String format =
    intent.getStringExtra("SCAN_RESULT_FORMAT");
    Toast.makeText(
    One.this,
    "Scan Result:" + capturedQrValue + " scan format :"+ format,Toast.LENGTH_SHORT).show();
    } else if (resultCode == RESULT_CANCELED) {
    // Handle cancel
    }
    } else {
    }

即使我没有安装ZXing样品条形码扫描仪,我也遇到了无法正常工作的问题.

编辑:

>是否可以将条形码扫描仪作为我的应用程序的一部分.我对下载Barcode Scanner不感兴趣.
>还有任何相机或Android版本规格的ZXing QRCode扫描???

不工作意味着 – 它要求从谷歌播放安装条码扫描器,我需要避免.

解决方法:

我更喜欢/建议使用Zbar而不是zxing.与zbar相比,zxing需要时间来读取qr代码,而且你可能需要安装自己的(zxing)应用程序–Barcode Scanner进行扫描.我试过两个,我发现zbar更好.从here下载zbar源代码.解压缩文件并将ZBarScannerLibrary导入为库项目.将此库添加到您的Android应用程序.还要将它添加到您的scanButton`中

if (check_if_camera_is_available) {

    Intent intent = new Intent(MyWallet.this, ZBarScannerActivity.class);
    startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
} 
else 
{

    Toast.makeText(MyWallet.this, "Camera Unavailable", Toast.LENGTH_SHORT).show();

}`

同时在您的活动中声明这些变量,否则您可能会遇到错误

private static final int ZBAR_SCANNER_REQUEST = 0;
private static final int ZBAR_QR_SCANNER_REQUEST = 1;

最后在你的清单文件中添加这个

<activity android:name="com.dm.zbar.android.scanner.ZBarScannerActivity"
              android:screenOrientation="landscape"
              android:label="@string/app_name" />

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>

希望这可以帮助 :-)

上一篇:android – ZXing条码扫描器在片段中的自定义布局


下一篇:android – 程序类型已存在:com.google.zxing.ChecksumException