カテゴリー
コンピューター

ZXing Android Embedded を勉強して、zxing を Android Studio で使うまでのメモ♪

以前、【Android Studio】zxing をプロジェクトとしてインポートし、任意のプロジェクトでライブラリとして使用する! | oki2a24 と息巻いておりましたものの、失敗いたしました><。その後、ZXing Android Embedded を使用することで zxing をプログラミングできるようになりました♪今回は、それまでの過程を記録いたします。

まずは、

の README.md から、ポイント感じた部分をまとめます♪そして、実際に Android Studio に導入してソースを 1 行書くところまで進めますわ♪

ZXing Android Embedded の README.md で感じたポイント

ZXing Android Embedded

ライブラリの特徴が書いてあるようですの。

  • バーコードのスキャンはzxing 本家にて Intent を経由すべきと案内されている。
  • Intent 経由で使用できない次のような場合では ZXing Android Embedded ライブラリを使うと良い。
    • 端末にバーコードスキャナーアプリをインストール出来ない場合
    • バーコードスキャンのロジックをカスタマイズする必要がある場合
    • UI をカスタマイズする必要がある場合

Adding aar dependency with Gradle

Android Studio にインポートする時の方法、注意点ですわね。

  • compile ‘com.journeyapps:zxing-android-embedded:2.3.0@aar’
    Android 4.0.3 以降 (API level 15) をサポート
  • compile ‘com.journeyapps:zxing-android-legacy:2.3.0@aar’
    Android 2.1 (API level 7) 以降をサポートするが、以降のバージョンのサポートは最適化されていない。Android 4.0.3 以降のみをサポートする場合は、不要
  • compile ‘com.journeyapps:zxing-android-integration:2.3.0@aar’
    スキャンアクティビティを起動するのに便利なライブラリ。自動的に最適なスキャンライブラリを上の2つから選択する。選択基準はアンドロイドのバージョンとその中から使用可能なものとなる。
  • compile ‘com.google.zxing:core:3.2.0’
    zxing core 3.0.x には Android 2.2 とそれ以前のバージョンに互換性がないコードが幾つか存在する。大半はエンコーディングに影響がある。しかしこれらのバージョンをサポートする場合はテストするべきだ。
    もしより古い Android バージョンのサポートが必要な場合、2.2 といった古いバージョンでも動作する。

こちらのページも参考になります♪

What’s the difference between zxing-android-embedded and zxing-android-legacy?

ZXing Android Embedded ライブラリと zxing-android-legacy (zxing 本家?) の違いと小見出しにはございます。

けれどもがサポート範囲の違いと、全範囲でサポートするための住み分けについて書かれておりました。

  1. zxing-android-embedded – 最新のバーコードスキャナーのバージョンに対応
  2. zxing-android-legacy – Android 2.2 のサポートが最新の ZXing プロジェクト

Adding apklib dependency with Maven

特にありません。(といいますか、よくわかりません><)

Usage

使い方が紹介されておりますが、このライブラリを使ってみた他のページと見比べながら見るのがよさそうですわね。

Custom Layout、Building locally、Sponsored by、License

特にありません。

ZXing Android Embedded を利用して、zxing を使えるようにしてみます!

実際に、SampleZxing というプロジェクトを Android Studio で作成し、zxing が使用できるように試してみます。

ZXing Android Embedded の追加♪

app の方の build.gradle を修正いたします。

まず、次を追加いたしました。場所は、dependencies の上です。

repositories {
    mavenCentral()

    maven {
        url "https://dl.bintray.com/journeyapps/maven"
    }
}

次に、dependencies 内に、次を追加いたします。サポート範囲について ReadMe.md の読み込みで調べましたけれども、今は全部サポート、つまり全部書く形といたします。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'

    // 以下、ZXing Android Embedded 追加のために記述
    compile 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
    compile 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
    compile 'com.journeyapps:zxing-android-integration:2.3.0@aar'
    compile 'com.google.zxing:core:3.2.0'
}

これで Gradle のビルドをしましたら、無事に終了いたしました。

zxing を Activity で利用!

MainActivity.java の onCreate で zxing を使用できるかどうか、クラスをインスタンス化することで確認いたしました。

結果、次のコードを書くことで、import も自動的になされ、無事に使うことができましたの!

IntentIntegrator intentIntegrator = new IntentIntegrator(this);

zxing を Android Studio で使えるようになりました♪

本当は、AndroidManifest.xml にカメラの使用許可を書かなければなりません。けれども、今回の目的は zxing をソースで利用できるようにすることですので、あえて書かないことといたします。

おわりに

以前の投稿で挫折しましたけれども、ようやく zxing を使えるようにするところまで辿り着きました♪QR コードを読み込むサンプルはネット上に結構ございますので、きっと試すことが出きると思いますの♪

最後に、ZXing Android Embedded の使い方を調べておりましたら、zxing だけで Android Studio でも使うことができそうなページを見つけました。いまさらですの><。

今更ですけれども、メモしておきますわ♪

以上です。

コメントを残す