超简单ZXing扫描二维码条形码

首先在build.gradle写上方法

repositories {

mavenCentral()

maven {

    url "http://dl.bintray.com/journeyapps/maven"

}
}

然后还是在这个文件内加上依赖

implementation 'com.journeyapps:zxing-android-embedded:2.0.1@aar'
implementation 'com.journeyapps:zxing-android-legacy:2.0.1@aar'
implementation 'com.journeyapps:zxing-android-integration:2.0.1@aar'
implementation 'com.google.zxing:core:3.0.1'

权限也是必须的

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

布局就搞一个BUTTON就好了
Activity里搞一下

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button but_zing = findViewById(R.id.but_zing);
    but_zing.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CAMERA)==PackageManager.PERMISSION_GRANTED){
                //扫描操作
                IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
                integrator.initiateScan();
            }else{
                ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CAMERA},100);

            }
        }
    });

}
@Override
public void onRequestPermissionsResult(int requestCode,  String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode==100){
        if (grantResults[0]==PackageManager.PERMISSION_GRANTED){
            Toast.makeText(MainActivity.this,"权限打开",Toast.LENGTH_SHORT).show();
        }else{
            finish();
        }
    }
}


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if (scanResult != null) {
        String result = scanResult.getContents();
        Log.d("code", result);
        //变量result就是二维码解码后的信息。
        Toast.makeText(this,result, Toast.LENGTH_LONG).show();
    }
}
}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43717447/article/details/84779181