2016-06-21 56 views
0

大家好我正在構建一個android應用程序,我需要掃描條形碼結果任何人都可以告訴我我該怎麼做。 在此先感謝。如何通過手機攝像頭掃描條碼和二維碼?

+0

。 – Abhishek

+0

好的,你能告訴我怎麼做,請 – help

+0

使用谷歌視覺API掃描條形碼。在這裏你可以找到完整的教程和示例https://codelabs.developers.google.com/codelabs/bar-codes/index.html?index=..%2F..%2Findex –

回答

1

這裏是你的完整的解決方案:

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler { 

     private ZXingScannerView mScannerView; 
     Button scan_code; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      scan_code = (Button) findViewById(R.id.button); 

     } 


     public void QrScanner(View view){ 

      mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view 
      setContentView(mScannerView); 
      mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results. 
      mScannerView.startCamera();   // Start camera 
     } 

     @Override 
     public void onPause() { 
      super.onPause(); 
      mScannerView.stopCamera(); // Stop camera on pause 
     } 

     @Override 
     public void handleResult(Result rawResult) { 
      // Do something with the result here 
      Log.e("handler", rawResult.getText()); // Prints scan results 
      Log.e("handler", rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode) 

      // show the scanner result into dialog box. 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("Scan Result"); 
      builder.setMessage(rawResult.getText()); 
      AlertDialog alert1 = builder.create(); 
      alert1.show(); 


    } 
你必須使用第三方API ZXingscanner
0

你可以使用任何第三方庫來實現你想要的。 ZXing是一個很棒的圖書館,你可以使用。

這段代碼可以被用來實現這一點:

public Button.OnClickListener mScan = new Button.OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
     startActivityForResult(intent, 0); 
    } 
}; 

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      String contents = intent.getStringExtra("SCAN_RESULT"); 
      String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
      // Handle successful scan 
     } else if (resultCode == RESULT_CANCELED) { 
      // Handle cancel 
     } 
    } 
} 
+0

它需要ZXing條碼應用程序安裝,你忘了提及。 –

+0

@EugeneKrivenja號不, – Jas

+0

謝謝你,讓我試試 – help

0

正如在評論中提到,你需要整合zxing圖書館。 看看示例代碼在sample link