1. 使用 Android Studio 1.4
2. New 一個 Empty Activity的 project
3. 參考 http://lazycatnote.blogspot.tw/2015/03/androidqr-code.html 的說明,但是加的位置及內容略為調整。
(a) 在 Gradle Scripts / build gradle (Module: app) 加入程式碼:
repositories { mavenCentral() maven { url "http://dl.bintray.com/journeyapps/maven" } } dependencies { // 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'}
當出現需要 Sync的訊息時,按下 Sync now (此時會自動下載相關檔案,無需自行下載 ZXING 套件)
(b) MainActivity 內容
package com.example.ray.myapplication2; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.app.Activity; import com.google.zxing.integration.android.*; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Activity mainactivity; private TextView scan_content; private TextView scan_format; private Button scan_btn; @Override protected void onCreate(Bundle saveInstanceStat){ super.onCreate(saveInstanceStat); setContentView(R.layout.activity_main); init_view(); scan_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { IntentIntegrator scanIntegrator = new IntentIntegrator(mainactivity); scanIntegrator.initiateScan(); } }); } public void onActivityResult(int requestCode, int resultCode, Intent intent){ IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); if(scanningResult!=null){ String scanContent=scanningResult.getContents(); String scanFormat=scanningResult.getFormatName(); scan_content.setText(scanContent); scan_format.setText(scanFormat); }else{ Toast.makeText(getApplicationContext(),"nothing",Toast.LENGTH_SHORT).show(); } } private void init_view(){ this.scan_content=(TextView)findViewById(R.id.scan_content); this.scan_format=(TextView)findViewById(R.id.scan_format); this.mainactivity=this; this.scan_btn = (Button)findViewById(R.id.scan_btn); } }(c) active_main.xml 加入相對的Button及Textview
4. 完工
5. 範例下載: https://drive.google.com/file/d/0B1BLJ4r7axiQczVIVGhySy1uRGs/view?usp=sharing
沒有留言:
張貼留言