How to read barcodes with the camera on Android?

前端 未结 9 1592
广开言路
广开言路 2020-12-07 19:24

I want my application to recognize barcodes taken by camera. Is it possible using Android SDK?

Something like this: Barcode Scanner

9条回答
  •  萌比男神i
    2020-12-07 19:41

    module app:

    implementation 'com.google.zxing:core:3.2.1'
    
    implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
    

    AndroidManifest.xml

    
    
    
    

    MainActivity.java

    public class MainActivity extends AppCompatActivity {
    
        Button BarCode;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            BarCode = findViewById(R.id.button_barcode);
            final Activity activity = this;
    
            BarCode.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
                    intentIntegrator.setDesiredBarcodeFormats(intentIntegrator.ALL_CODE_TYPES);
                    intentIntegrator.setBeepEnabled(false);
                    intentIntegrator.setCameraId(0);
                    intentIntegrator.setPrompt("SCAN");
                    intentIntegrator.setBarcodeImageEnabled(false);
                    intentIntegrator.initiateScan();
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
            IntentResult Result = IntentIntegrator.parseActivityResult(requestCode , resultCode ,data);
            if(Result != null){
                if(Result.getContents() == null){
                    Log.d("MainActivity" , "cancelled scan");
                    Toast.makeText(this, "cancelled", Toast.LENGTH_SHORT).show();
                }
                else {
                    Log.d("MainActivity" , "Scanned");
                    Toast.makeText(this,"Scanned -> " + Result.getContents(), Toast.LENGTH_SHORT).show();
                }
            }
            else {
                super.onActivityResult(requestCode , resultCode , data);
            }
        }
    }
    

提交回复
热议问题