Androidアプリ開発

QRコードから任意の文字列を取得する

この記事は約10分で読めます。
記事内に広告が含まれています。
スポンサーリンク

この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、
記事の最後で紹介します)

この記事のテーマ


QRコードをスキャンして任意の文字列を取得する

ガラスフィルムは液晶面の保護が目的です!

ポイント

URLの交換をスマホで行う場合に便利なQRコード。
QRコードはURLの交換に特化したインタフェースではありません。
任意のデータをQRコードで表示して、データ交換の手段として使用できます。
QRコードに表示できるデータ量は、数字が7089字、英数字が4296字、 漢字が1817字、バイナリが2953バイトです。
今回はカメラでスキャンしたQRコードから、任意の文字列を取り出す実装を紹介します。

QRコードとは

QRコードのスキャン

QRコードのスキャンはスマホのカメラ機能して、撮影した画像からQRコードを検出し、デコードします。
GooglePlay開発者サービスにスキャン機能があり、簡単にQRコードのスキャン機能が簡単に実装できます。
このスキャン機能にはオートスキャンが実装されており、カメラの権限をリクエストする必要がありません。
使用上の注意点として、GooglePlay開発者サービスにスキャン機能が含まれていない場合にインストールが必要です。

Googleコードスキャナ

コードスキャン

Googleコードスキャナを呼び出すとカメラが起動し、コードのスキャン画面が表示されます。
コードのスキャン画面でQRコードをスキャンします。
QRコードがスキャンできると、QRコードのエンコード結果がコールバックされます。

Googleコードスキャナのインストールから、コードのスキャン画面を表示するサンプルコードです。
スキャンするQRコードにはタブ区切りで2つ文字列が含まれていて、スキャン結果から取り出しています。

    privete Toast toast;
    private String id;
    private String owner;
    :
    // Googleコードスキャナのインストール確認
    ModuleInstallClient moduleInstall = ModuleInstall.getClient(context);
    ModuleInstallRequest moduleInstallRequest = ModuleInstallRequest.newBuilder()
            .addApi(GmsBarcodeScanning.getClient(this))
            .build();
    moduleInstall
            .installModules(moduleInstallRequest)
            .addOnSuccessListener(moduleInstallResponse ->
                    // QRコードリーダーでフォルダID(id)とフォルダユーザID(owner)を取得
                    GmsBarcodeScanning.getClient(this)
                            .startScan()
                            .addOnSuccessListener(barcode -> {
                                if (barcode != null && barcode.getDisplayValue() != null) {
                                    String[] tsv = barcode.getDisplayValue().split("\t");
                                    if (tsv.length > 1) {
                                        id = tsv[0];
                                        owner = tsv[1];
                                        :
                                    }
                                }
                            })
                            .addOnFailureListener(
                                    e -> {
                                        if (e.getMessage() != null) toastMessage(e.getMessage());
                                    })
            .addOnFailureListener(e -> {
                if (e.getMessage() != null) toastMessage(e.getMessage());
            }));
    :
    private void toastMessage(String message) {
        if (toast != null) toast.cancel();
        toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
        toast.show();
    }


ModuleInstallClientGmsBarcodeScanningからListenerでコールバックを受け取ります。
サンプルではエラー発生時にエラーメッセージをToast表示しています。

Googleコードスキャナを使用する場合、build.gradleAndroidManifest.xmlに定義を追加する必要があります。

◎build.gradle(モジュール)

dependencies {
    …
    implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    …
}

◎AndroidManifest.xml

    <application
        :
        <!-- Googleコードスキャナ -->
        <meta-data
            android:name="com.google.mlkit.vision.DEPENDENCIES"
            android:value="barcode"/>
        :
    </application>

今回は、ここまでです。

QRコードをスキャンして任意の文字列を取得しているAndroidアプリです。

誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にある
コメントか、
こちらから、お願いいたします♪

ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

ブログランキング・にほんブログ村へ

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ

アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります。
オンラインスクールでの習得を、強くおススメします。

未経験者からシステムエンジニアを目指すのに最適です。まずは無料相談から♪

未経験者からプログラマーを目指すのに最適です。まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています。お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適です。まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪

スポンサーリンク
msakiをフォローする
スポンサーリンク

コメント欄

タイトルとURLをコピーしました