一.下载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" />
六: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);
}
}
七:添加权限: