集成ZXing二维码扫描器,无需安装BarCode Scanner

2024-05-04

我正在尝试将 ZXing QR 码集成到我的 Android 应用程序中,而不安装条形码扫描仪应用程序,我已按照以下步骤操作:

1)首先我下载了​​ZXing.zip文件并解压它

2)将ZXing项目作为android现有项目打开,然后转到android文件夹并打开android文件夹,并将core.jar文件包含到名为CaptureActivity的ZXing项目中。

3)我在名为“QRCodeSample”的项目中使用了 CaptureActivity 项目作为库。 (将 CaptureActivity 包含为库时出现问题)

4)我的代码如下3:

   public class QRCodeSampleActivity extends Activity {
Button b1;
static String contents;

public static final int REQUEST_CODE = 1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    b1 = (Button) findViewById(R.id.button1);
    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            /*Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
                    "QR_CODE_MODE");
            startActivityForResult(intent, 0);*/
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);


        }
    });
}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.i("Barcode Result", contents);
            Intent i1 = new Intent(QRCodeSampleActivity.this, webclass.class);
            startActivity(i1);
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
            Log.i("Barcode Result","Result canceled");
        }
    }
}

 }

清单文件是:

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

     <activity android:name="com.google.zxing.client.android.CaptureActivity"
           android:screenOrientation="landscape"
           android:configChanges="orientation|keyboardHidden"
           android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
           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>
    <activity
        android:label="@string/app_name"
        android:name=".QRCodeSampleActivity" >
       <intent-filter >
            <action android:name="android.intent.action.MAIN" />

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

    </activity>


    <activity  android:name=".webclass"></activity>

</application>

</manifest>

而且它也不添加库

当我尝试运行我的项目时,错误消息是:

无法实例化活动 ComponentInfo{com.qr.code/com.qr.code}:java.lang.ClassNotFoundException:加载程序 dalvik.system.PathClassLoader 中的 com.qr.code[/data/app/com.qr.code-1 .apk]


终于我得到了答案,

从 ADT 14 开始,资源字段(例如 R.id.decode)在库项目中定义时不再是常量

所以在ZXing库->android->com.google.zxing.client.android.CaptureActivityHandler.java和DecodeHandler.java中

将这两个类的 switch case 语句替换为 if-else,然后将此 ZXing 库导入到您的项目中。

我自己项目的其余编码是相同的......只是库类的问题,因为这些类没有根据 ADT 14 进行更新。

Kanika

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集成ZXing二维码扫描器,无需安装BarCode Scanner 的相关文章

随机推荐

  • mysql 时钟

    我有一个包含以下元素的时钟表 id pk action emp id fk time 如果我通过了 如何选择最新的动作emp id到查询 id emp id action current time 1 1 clockin 2012 01 2
  • IE9 是否支持 CSS3 ::before 和 ::after 伪元素?

    On 这个 MS 兼容性表 http msdn microsoft com en us library cc351024 28v vs 85 29 aspx它说 IE9不支持伪元素 before and after 但当我尝试时 似乎确实
  • 将数据作为 RDD 保存回 Cassandra

    我试图从 Kafka 读取消息 处理数据 然后将数据添加到 cassandra 中 就像它是 RDD 一样 我的麻烦是将数据保存回 cassandra 中 from future import print function from pys
  • 使用基类活动将多个活动(选项卡)绑定到服务

    发帖后发现这些 http code google com p android issues detail id 2665 http code google com p android issues detail id 2665http co
  • Javascript时间转换正则表达式

    我有一种使用 Net 中的正则表达式来转换时间的方法 例如 1h 20m 格式为双倍 就这个 public static double GetTaskHours this string tmpHours Double taskHours 0
  • 在 Pygame 中缩放图像/矩形

    是否可以在 pygame txt 内部 缩放 矩形 有点像当你在桌面上缩放窗口时 我想知道你如何在 pygame 中做到这一点 您的光标将控制矩形的大小 我使用 skrx 方法并尝试对 2 个矩形执行此操作 if evnt type MOU
  • Facebook应用程序白名单流程

    有谁知道将 FB 应用程序列入白名单以启用某些功能的过程吗 我看到很少有人问同样的问题 但没有答案 FB 有处理白名单申请的联系人吗 没有申请白名单的公共流程 与大多数公司一样 Facebook 可能拥有少量私有 API 这些 API 仅供
  • pandas - 将字符串转换为字符串列表[重复]

    这个问题在这里已经有答案了 我有这个 file csv 文件可以用 pandas 读取 Title Tags T1 Tag1 Tag2 T1 Tag1 Tag2 Tag3 T2 Tag3 Tag1 using df pd read csv
  • Ruby:注释“frozen_string_literal: true”有什么作用?

    这是rspecbinstub 在我的项目目录中 usr bin env ruby begin load File expand path spring FILE rescue LoadError end frozen string lite
  • 如何在 Chrome 开发者工具的控制台中启用下划线?

    我正在使用 Angular2 和下划线 import as from underscore 我也想在 Chrome 控制台窗口中使用下划线库 即使我确实在代码中间中断 并尝试使用 但我得到了 未定义 错误 我可以在 Chrome 控制台窗口
  • Jquery .ajax method =“post”但$_POST为空

    ajax method post url save php data id 453 action test beforeSend function complete function success function html mydiv
  • 具有 UI 自动化和 .net 的数据网格内容

    我在使用 UI 自动化读取外部应用程序中的数据网格内容时遇到一些问题 并且可以使用一些指针 这是我到目前为止所拥有的 int id System Diagnostics Process GetProcessesByName Book 0 I
  • 使用Log4j在日志中输出Spark应用程序id

    我有一个用于 Spark 应用程序的自定义 Log4j 文件 我想输出 Spark 应用程序 ID 以及消息和日期等其他属性 因此 JSON 字符串结构如下所示 name time date level thread message app
  • React.js 关于监听组件窗口事件的最佳实践

    我根据几个 React js 组件在视口中的位置对它们进行动画处理 如果组件位于视口中 则将不透明度动画设置为 1 如果不在视口中 则将其不透明度动画设置为 0 我正在使用getBoundingClient s top and bottom
  • 查看所有定义的变量

    我目前正在 python shell 中进行计算 我想要的是 Matlab 风格的列表 您可以在其中看到已定义的所有变量 这样我就知道我使用了哪些名称 它们的值等 有办法吗 我该怎么做 您可以使用一些东西 dir 将为您提供范围内变量的列表
  • 带有 Hamcrest 匹配器的 TestNG 软断言

    我想在 TestNG 测试中使用 Hamcrest 匹配器 并专门使用软断言 我怎样才能做到这一点 我知道我可以在测试中使用 Hamcrest 的断言 例如 assertThat actual containsInAnyOrder expe
  • 检索访问令牌时出错:TypeError:无法读取未定义的属性“project_id”

    我是扣扣新手 首次登录后通过 扣登录 我能够登录 script google com 接下来 我创建了一个项目并通过以下方式推送文件 扣推 现在 我已使用以下方式注销 扣注销 这里需要帮助 现在 如果我正在尝试 clasp 登录 creds
  • 页脚中的 SSRS 页码

    我希望不包含报告前 10 页 即第 1 10 页 的页码 在页脚中 第 1 页应为 i 第 2 页应为 ii 第 3 页应为 iii 依此类推 以罗马数字表示 当到达第 11 页时 应重置页码 有谁知道我可以用什么表达来实现这一目标 因此
  • 控制消息监听容器停止一定时间后重新开始监听

    听众
  • 集成ZXing二维码扫描器,无需安装BarCode Scanner

    我正在尝试将 ZXing QR 码集成到我的 Android 应用程序中 而不安装条形码扫描仪应用程序 我已按照以下步骤操作 1 首先我下载了 ZXing zip文件并解压它 2 将ZXing项目作为android现有项目打开 然后转到an