關於Android Studio 基於Zxing開發二維碼

zxing是github上一個二維碼處理開源項目,咱們使用這個庫來處理二維碼html

若是你使用的是Android Studio,能夠參考本文進行配置。並附一個小例子。java

首先在build.gradle(Moudle:app)中添加下列依賴:android

 

  repositories {  git

   mavenCentral()  github

      maven {  app

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

      }  ide

  }  函數

 

 

  dependencies {  gradle

      // Supports Android 4.0.3 and later (API level 15)  

    compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar'  

    // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.  

     // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.  

   compile 'com.journeyapps:zxing-android-legacy:2.0.1@aar'  

      // Convenience library to launch the scanning and encoding Activities.  

      // It automatically picks the best scanning library from the above two, depending on the  

      // Android version and what is available.  

      compile 'com.journeyapps:zxing-android-integration:2.0.1@aar'  

      // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.  

      // This mostly affects encoding, but you should test if you plan to support these versions.  

      // Older versions e.g. 2.2 may also work if you need support for older Android versions.  

      compile 'com.google.zxing:core:3.0.1'  

  }  


而後在AndroidManifest.xml文件<manifest>標籤內部,<application>標籤前面加入如下代碼,申請權限

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


這樣就好了!

 

接下來是用法:

在按鈕的onClick事件中添加代碼,點擊後會跳轉到掃描界面:

  1. @Override  
  2.   public void onClick(View v) {  
  3.         //掃描操做  
  4.         IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);  
  5.         integrator.initiateScan();  
  6.     }  

而後重寫下列函數,用來處理解碼後的信息:

 
  1. @Override  
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3.     IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);  
  4.     if (scanResult != null) {  
  5.         String result = scanResult.getContents();  
  6.         Log.d("code", result);  
  7.         Toast.makeText(this,result, Toast.LENGTH_LONG).show();  
  8.     }  
  9. }  


變量result就是二維碼解碼後的信息。

 

請用真機調試。

另外,zxing中設置的是掃描時橫屏。一般咱們不但願橫屏,網上通常的修改方法是直接修改源代碼。可是如今咱們用的是gradle添加依賴的方式,因此我如今暫時沒有想到辦法。若是有知道的盆友望不吝賜教!

 

原文: http://blog.csdn.net/AeroYoung/article/details/51144758

相關文章
相關標籤/搜索