close

undefined

以下紀錄Android 開發QR Code 掃描器的方法

開發環境: Windows 10

IDE: Android Studio 3.5.2

API level: 29 (請參考對應表)

手機: ASUS Zenfone Max Pro M2 (4G/128G)

手機Android 版本: 9

 

QR Code 掃描器的實作會用到相機功能,除了在 AndroidManifest 中取得權限外,Android 6 以上也要在程式中取得權限。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tw.idv.ken.myapplication">
    <uses-permission android:name="android.permission.CAMERA"></uses-permission>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

上述的: <uses-permission android:name="android.permission.CAMERA"></uses-permission> 就是取得相機權限。

 

接下來要引用 Google 開發的 QR code 掃描器套件,所以需要在 build .gradle 中來執行:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    defaultConfig {
        applicationId "tw.idv.ken.myapplication"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    implementation 'com.google.android.gms:play-services-vision:16.2.0'
}

dependencies中的 implementation 'com.google.android.gms:play-services-vision:16.2.0'就是使用 google 套件

 

以下是實作的程式碼:

 

 

 

Line 29, 31, 32 這三個物件一定要有。

Line 38 - 54: 取得相機權限的程式碼

Line 59 - 126 是 QR code 掃描器的程式碼,其中 line 96 - 124 是掃描取得結果的處理方式。

結果如下:

12735255091352.jpg

Reference:

https://www.ruyut.com/2018/12/5-android-studio-qr-code.html

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 葛瑞斯肯 的頭像
    葛瑞斯肯

    葛瑞斯肯樂活筆記

    葛瑞斯肯 發表在 痞客邦 留言(1) 人氣()