Android中ZXing扫描二维码的简单用法

一.下载zxing文件包:

链接:https://pan.baidu.com/s/1gqblBazf9zqNdAAra2xpiQ

提取码:rxjd

二.在自己的项目里导入zxing包,File-->New-->Import Module,选择libzxing,确定导入


三.导入成功后肯定要报错,我们只需要改下几个地方就可以了。

    1.打开libzxing的buidle.gradle和app的buidle.gradle,把libzxing里面的compilesdkversion,buildToolsVersion,minSdkVersion,

targetSdkVersion的版本改成和app里的一样,如图:



2.这两个地方修改一致:如图:


3.EncodingUtils文件如果报canvas.save的错误,直接把里面的参数去掉即可。


四:至此,zxing文件库应该不会报错了,最后在app里的gradle里把依赖添加上,就可以用zxing里的方法了

implementation project(path:':libzxing')

五:新建一个布局文件:

 

 xmlns:android="http://schemas.android.com/apk/res/android" 

 android:layout_width="match_parent" 

 android:layout_height="match_parent" 

 android:orientation="vertical" 

 android:background="#87CEEB">

     

         android:layout_width="match_parent" 

         android:layout_height="wrap_content" 

         android:layout_marginTop="5dp" 

         android:orientation="horizontal"> 

         

             android:id="@+id/edit_lsh" 

             android:layout_width="0dp" 

             android:layout_weight="3" 

             android:layout_height="40dp" 

             android:textSize="18sp" /> 

         

             android:id="@+id/btnSweep" 

             android:layout_width="0dp" 

             android:layout_height="40dp" 

             android:layout_weight="1" 

             android:text="扫描"/> 

      

六:java代码:

package com.example.zxingdemo;

import androidx.annotation.Nullable;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.app.ActivityCompat;

import android.Manifest;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import com.xys.libzxing.zxing.activity.CaptureActivity;

public class MainActivity extends AppCompatActivity {

EditText stringLSH;

Button btnSweep;

@Override protected void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        stringLSH = findViewById(R.id.edit_lsh);

        /*二维码扫描*/

        btnSweep = findViewById(R.id.btnSweep);

        btnSweep.setOnClickListener(new View.OnClickListener() {

        @Override public void onClick(View view) {

        Intent sweep = new Intent(MainActivity.this, CaptureActivity.class);

        startActivityForResult(sweep,1003);

        }

    });

    requestPermissions();

}

        @Override public void onActivityResult(int requestCode , int resultCode , Intent data){

        super.onActivityResult(requestCode , resultCode , data);

        if (resultCode == RESULT_OK){

        String result = data.getExtras().getString("result");

        stringLSH.setText(result);

    }

}

        /*申请手机权限,在oncreate()方法中调用*/

        public void requestPermissions(){

        String [] permissions = new String[]{

        Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.VIBRATE,

        };

        ActivityCompat.requestPermissions(MainActivity.this,permissions,100);

    }

}

七:添加权限:

你可能感兴趣的:(Android中ZXing扫描二维码的简单用法)