# QRCodeWX **Repository Path**: Eyesome/qrcode-wx ## Basic Information - **Project Name**: QRCodeWX - **Description**: 微信扫一扫功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-06-15 - **Last Updated**: 2021-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目(扫一扫)[QRCodeScan](https://gitee.com/ddgameshop/qrcode-wx) > ## 基于[微信扫一扫](https://github.com/square/retrofit)、[openCV源码](https://github.com/opencv/opencv)、[opencv_contrib源码](https://github.com/opencv/opencv_contrib)(微信二维码引擎已经开源到openCV分支上);[openCV源码编译步骤](https://onlyloveyd.blog.csdn.net/article/details/113665108) ## 一、使用依赖 **在module下的build.gradle添加。** #### 在module下的build.gradle的目录下android{ }加入 ``` ndk { abiFilters 'armeabi-v7a' abiFilters "armeabi" } repositories { flatDir { dirs 'libs' } } sourceSets { main { jniLibs.srcDirs = ['libs'] } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } ``` #### 直接引入 ``` implementation 'com.gitee.ddgameshop:qrcode-wx:v1.0.0' ``` ## 二、功能使用 ### * 初始化openCV SO库已经是否成功的回调。 ``` if (!OpenCVLoader.initDebug()) { OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback); } else { mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } //opencv库 加载并初始化回调的函数 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { super.onManagerConnected(status); if (status == BaseLoaderCallback.SUCCESS) { Log.d(TAG, "加载成功"); } else { super.onManagerConnected(status); Log.d(TAG, "加载失败"); } } }; ``` ### * 调用扫一扫以及结果返回。 ``` // 开始扫码 private void startQrCode() { // 申请相机权限 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { // 申请权限 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, Constant.REQ_PERM_CAMERA); return; } // 申请文件读写权限(部分朋友遇到相册选图需要读写权限的情况,这里一并写一下) if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { // 申请权限 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, Constant.REQ_PERM_EXTERNAL_STORAGE); return; } // 二维码扫码 Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, Constant.REQ_QR_CODE); } //扫描结果回调 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //扫描结果回调 if (requestCode == Constant.REQ_QR_CODE && resultCode == RESULT_OK && data != null) { Bundle mBundle = data.getExtras(); if (mBundle != null) { String scanResult = mBundle.getString(Constant.INTENT_EXTRA_KEY_QR_SCAN); //将扫描出的信息显示出来 tv_qrcode_result.setText(scanResult); } } } ``` ## 三、最后 ### * 项目的APP module MainActivity.class中有相应的代码。