1. 程式人生 > >超簡單ZXing掃描二維碼條形碼

超簡單ZXing掃描二維碼條形碼

首先在build.gradle寫上方法

repositories {

mavenCentral()

maven {

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

}
}

然後還是在這個檔案內加上依賴

implementation 'com.journeyapps:zxing-android-embedded:[email protected]'
implementation 'com.journeyapps:zxing-android-legacy:[email protected]'
implementation 'com.journeyapps:zxing-android-integration:
[email protected]
' 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();
    }
}
}

在這裡插入圖片描述
在這裡插入圖片描述