Zbar 集成到 Android 应用程序中 [英] Zbar integration into Android app

查看:22
本文介绍了Zbar 集成到 Android 应用程序中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 Android ADT Bundle 进行开发工作.在线阅读多个指南后,我将包 com.dm.zbar.android.scanner 添加到我的项目中.我在包中包含了文件 CameraPreview.java、ZBarConstants.java 和 ZBarScannerActivity.java.尽管如此,类 ScanActivity.java(由我创建,但使用 zbar 方法)中的 ZBAR_SCANNER_REQUEST 变量无法解析为变量.接受除此变量之外的所有内容.知道为什么会这样吗?注意:我的 libs 文件夹包含这里的所有内容:

I am using the Android ADT Bundle for dev work. After reading multiple guides online I have added the package com.dm.zbar.android.scanner to my project. I have included the files CameraPreview.java, ZBarConstants.java, and ZBarScannerActivity.java in the package. Despite all this the ZBAR_SCANNER_REQUEST var in the class ScanActivity.java (created by me, but using zbar methods) cannot be resolved to a variable. Everything except this variable is accepted. Any idea why this is occurring? Note: My libs folder contains everything in here:

https://github.com/DushyanthMaguluru/ZBarScanner/tree/master/ZBarScannerLibrary/libs

并且 zbar.jar 包含在构建路径中.

and zbar.jar is included on the build path.

扫描活动:

package com.xx.xxx;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
import com.dm.zbar.android.scanner.ZBarConstants;
import com.dm.zbar.android.scanner.ZBarScannerActivity;
import net.sourceforge.zbar.Symbol;

public class ScanActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_scan);
}

public void launchScanner(View v) {
    if (isCameraAvailable()) {
        Intent intent = new Intent(this, ZBarScannerActivity.class);
        startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
    } else {
        Toast.makeText(this, "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
    }
}

public void launchQRScanner(View v) {
    if (isCameraAvailable()) {
        Intent intent = new Intent(this, ZBarScannerActivity.class);
        intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.QRCODE});
        startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
    } else {
        Toast.makeText(this, "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
    }
}

public boolean isCameraAvailable() {
    PackageManager pm = getPackageManager();
    return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case ZBAR_SCANNER_REQUEST:
        case ZBAR_QR_SCANNER_REQUEST:
            if (resultCode == RESULT_OK) {
                Toast.makeText(this, "Scan Result = " + data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_SHORT).show();
            }
            break;
    }
}

}

以防万一它是相关的:AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xx.xxx"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="xx"
    android:theme="@style/AppTheme" >
    <activity android:name="com.xx.xxx.MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.xx.xxx.WvActivity" />
    <activity android:name="com.xx.xxx.ScanActivity" />
    <activity
        android:name="com.dm.zbar.android.scanner.ZBarScannerActivity"
        android:screenOrientation="landscape" />
</application>

推荐答案

我检查了 ZBar 库示例.你犯了一个错误.

I checked the ZBar Library Example. You made a mistake.

出现这个错误是因为你没有在你的activity中声明这两个变量

This error occurred because you did not declare these two variables in your activity

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

您需要在 onCreate(..) 方法上方声明这些变量.

you need to declare these variables above your onCreate(..) Method.

参见 ZBar 示例.

这篇关于Zbar 集成到 Android 应用程序中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆