Android生成和扫描二维码

版权声明:转载请注明本文链接 https://blog.csdn.net/qq_31844349/article/details/81301911

现在高端大气上档次的Android程序都会有二维码生成和扫描的功能,

因为我最近在做一个项目,需要使用到二维码的生成和扫描,经过查询资料,使用的是通过zxing来生成和扫描二维码

简化好的二维码核心库:https://download.csdn.net/download/qq_31844349/10574394

除了核心库还有一些颜色资源和声音资源在我的demo里面,大家可以去下载我写好的demo来找到这些需要用到的资源

Demo地址:https://github.com/sangguangcan/ErWeiMaSaoMiao

这个是代码的结构


把项目里面的res文件夹下的raw文件夹复制到你自己的项目里面

values里面的文件也要复制到你的项目里面,记住不要和你自己项目的内容冲突,你可以只把代码复制到你的文件里

在app的build.gradle加上:

compile 'com.google.zxing:core:3.3.0'

因为需要用到CaptureActivity:需要在清单文件里面注册

<activity
            android:name="你自己的包名.CaptureActivity"
            android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>

加上权限:

<uses-permission android:name="android.permission.VIBRATE" /> <!-- 震动权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" /> <!-- 使用照相机权限 -->
    <uses-feature android:name="android.hardware.camera.autofocus" /> <!-- 自动聚焦权限 -->

如果使用的Android版本是6.0以上需要加上动态权限,我写好的demo里面已经加了动态权限,大家可以参考下

生成二维码:

Bitmap mBitmap = EncodingHandler.createQRCode("二维码内容", 300);

扫描二维码:

Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
//因为这里需要拿到扫描后的结果,所以这是使用的是startActivityForResult
startActivityForResult(intent, 0);

重写onActivityresult方法,拿到扫描结果:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            Bundle bundle = data.getExtras();
            String scanResult = bundle.getString("result");
            tv.setText(scanResult);
        }
    }

效果图:

猜你喜欢

转载自blog.csdn.net/qq_31844349/article/details/81301911
今日推荐