Android Studio 使用zxing二维码处理

Android 专栏收录该内容
1 篇文章 0 订阅

zxing是github上一个二维码处理开源项目,我们使用这个库来处理二维码

如果你使用的是Android Studio,可以参考本文进行配置。并附一个小例子。

首先在build.gradle(Moudle:app)中添加下列依赖:

repositories {
    mavenCentral()
    maven {
        url "http://dl.bintray.com/journeyapps/maven"
    }
}

dependencies {
    // Supports Android 4.0.3 and later (API level 15)
    compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar'

    // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
    // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
    compile 'com.journeyapps:zxing-android-legacy:2.0.1@aar'

    // Convenience library to launch the scanning and encoding Activities.
    // It automatically picks the best scanning library from the above two, depending on the
    // Android version and what is available.
    compile 'com.journeyapps:zxing-android-integration:2.0.1@aar'

    // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
    // This mostly affects encoding, but you should test if you plan to support these versions.
    // Older versions e.g. 2.2 may also work if you need support for older Android versions.
    compile 'com.google.zxing:core:3.0.1'
}

然后在AndroidManifest.xml文件<manifest>标签内部,<application>标签前面加入以下代码,申请权限

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

这样就行了!

接下来是用法:

在按钮的onClick事件中添加代码,点击后会跳转到扫描界面:

@Override
    public void onClick(View v) {
        //扫描操作
        IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
        integrator.initiateScan();
    }
然后重写下列函数,用来处理解码后的信息:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (scanResult != null) {
            String result = scanResult.getContents();
            Log.d("code", result);
            Toast.makeText(this,result, Toast.LENGTH_LONG).show();
        }
    }

变量result就是二维码解码后的信息。

请用真机调试。


另外,zxing中设置的是扫描时横屏。通常我们不希望横屏,网上一般的修改方法是直接修改源代码。但是现在我们用的是gradle添加依赖的方式,所以我现在暂时没有想到办法。如果有知道的盆友望不吝赐教!

  • 1
    点赞
  • 8
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 8 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

AeroYoung

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值