跳到主要內容

Android 呼叫 zxing QR code scanner

今天弄個簡單的範例是關於執行QR code掃描的部分
這個方法是直接呼叫 Barcode scanner 的方法

首先在 build.gradle 的 dependencies 加上 compile 'com.google.zxing:android-integration:3.2.1'
dependencies {
    ...
    compile 'com.google.zxing:android-integration:3.2.1'
}


呼叫的方式則是在 Activity or Fragment 中加入執行的程式

IntentIntegrator scanner = new IntentIntegrator(mActivity);
scanner.initiateScan();


要如何得到掃描的值呢?只要 override onActivityResult 就可以囉!

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    IntentResult scanner = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if (scanner != null) {
        String code = scanner.getContents(); // 掃描得到的字串
        String format = scanner.getFormatName(); // 掃描的格式, 如 QR_CODE
    }
}

附上參考的 java doc

留言

這個網誌中的熱門文章

input 陣列 - PHP

要如何在 input 裡面回傳陣列資料呢? 就寫了一個簡單的小範例。 以下是 php 原始碼 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php /** 印出Get裡面的資訊 **/ if ( ! empty ( $_GET )) print_r ( $_GET ); /** 初始資料設定 **/ $id = array ( 0 => '#0001' , 1 => '#0002' ); $data [ $id [ 0 ]] = array ( 'date' => '2012-08-12' , 'note' => '上海出差' ); $data [ $id [ 1 ]] = array ( 'date' => '2012-08-17' , 'note' => '北京出差' ); /** 印出表單資訊 **/ echo "<form method='get'>" ; foreach ( $data as $key => $row ){ echo "<input type='text' name=' { $key } [date]' value=' { $row [ 'date' ] } ' />" ; echo "<input type='text' name=' { $key } [note]' value=' { $row [ 'note' ] } ' />" ; echo "<br />" ; } echo "<input type='submit' value='送出' />" ; e...