Movatterモバイル変換


[0]ホーム

URL:


ひだまりソケットは壊れない

ソフトウェア開発に関する話を書きます。 最近は主に Android アプリ、Windows アプリ (UWP アプリ)、Java 関係です。

まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。

この広告は、90日以上更新していないブログに表示しています。

android-lib-ZXingCaptureActivity 2.3.0-1.2 をリリースしました

android-lib-ZXingCaptureActivity というAndroid アプリ用のライブラリを公開しました*1AAR でパッケージングして、Maven Central に publish してあります。

ソースコードGitHub に置いてあります。

android-lib-ZXingCaptureActivity でできること

このライブラリを使うと、バーコードスキャンの機能を持つ Activity をあなたのアプリに簡単に組み込むことができます。 次のスクリーンショットのような感じです。

f:id:nobuoka:20140223143508p:plain

バーコードスキャンの機能自体は、ZXing の core モジュールにより実現されます。 (なので、このライブラリはcom.google.zxing:core に依存します。) 本ライブラリが提供するのは、Activity の実装と、カメラの管理などの部分です。 本ライブラリの実装の多くの部分は、ZXing のandroid モジュールを元に作られています。

ZXing プロジェクトについては次をご覧ください。

備考

バーコードスキャンの機能があなたのアプリのコア機能であるならば、本ライブラリを使うなどして、アプリの中にバーコードスキャンの機能を組み込むべきでしょう。 一方で、バーコードスキャンの機能がコア機能でないのであれば、バーコードスキャンは 「QRコードスキャナー」 などの別のアプリにインテントを投げることで実現する、というのも一つの手段でしょう。 「QRコードスキャナー」 にインテントを投げるのであれば、ZXing プロジェクトのandroid-integration モジュールを使うのが便利です。

使い方

依存関係の追加

Maven Central に公開されているので、build.gradle に次のように依存関係を追加することでライブラリを使用できます (Gradle によるビルドを行う場合)。

repositories {    mavenCentral()}dependencies {    compile'info.vividcode.android.zxing:capture-activity:2.3.0-1.+'}

Maven でのビルドや Ant でのビルドを行う場合も、それぞれのやり方で依存関係に追加すれば使えると思います。 (試してません。)

AndroidManifest.xml での activity の宣言

このライブラリが提供する activity はinfo.vividcode.android.zxing.CaptureActivity です。 これを使うことを AndroidManifest.xml で宣言します。 (必要ならば、CaptureActivity のサブクラスを作ってそれを使うようにもできます。)

<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="org.example.your.app.pkg"><application><activityandroid:name="info.vividcode.android.zxing.CaptureActivity"android:theme="@style/Theme.ZXingCaptureActivity"android:screenOrientation="landscape"/>

テーマは自由に指定することができます。 本ライブラリでは、Theme.ZXingCaptureActivity というテーマを提供しています。 それと、android:screenOrientation は必ずlandscape と指定してください。

Activity の起動と結果の取得

あとは、実際に Activity を起動して、結果を受け取るだけです。 Activity の起動は、次のようにActivity#startActivityForResult メソッド を使って行います。

// 必要な import 文import android.content.Intent;import info.vividcode.android.zxing.CaptureActivity;import info.vividcode.android.zxing.CaptureActivityIntents;// Intent の作成。  Intent captureIntent =new Intent(this, CaptureActivity.class);// `CaptureActivityIntents` クラスを使ってインテントにパラメータをセットできます。// (必須のパラメータはありません。)// 例えば、`setPromptMessage` メソッドを使い、`CaptureActivity` に表示されるメッセージを設定できます。  CaptureActivityIntents.setPromptMessage(captureIntent,"Barcode scanning...");// Activity の開始。  startActivityForResult(captureIntent,1);

結果は、Activity#onActivityResult コールバックメソッド で受け取ります。 結果のデータはCaptureResult クラスで扱うと良いでしょう。

// 必要な import 文import android.content.Intent;import android.widget.Toast;import info.vividcode.android.zxing.CaptureResult;@Overrideprotectedvoid onActivityResult(int requestCode,int resultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);if (requestCode ==1) {if(resultCode == RESULT_OK) {      CaptureResult res = CaptureResult.parseResultIntent(data);// バーコードから読み取った値と、バーコードのフォーマットを Toast で表示する。      Toast.makeText(this, res.getContents() +" (" + res.getFormatName() +")", Toast.LENGTH_LONG).show();    }else {// 「戻る」 ボタンが押されたときなどはこっちに来る。    }  }}

ライセンス

本ライブラリのライセンスはApache License, Version 2.0 です。 また、本ライブラリにはApache License, Version 2.0 でライセンスされている成果物 (ZXing プロジェクトのandroid モジュール) の派生成果物が含まれています。

*1:しばらく前からMaven Central にバージョン 2.3.0-1 や 2.3.0-1.1 を上げていましたが、告知するのは今回が初めてです。

注目記事
検索
最近のコメント
    カテゴリー

    引用をストックしました

    引用するにはまずログインしてください

    引用をストックできませんでした。再度お試しください

    限定公開記事のため引用できません。

    読者です読者をやめる読者になる読者になる

    [8]ページ先頭

    ©2009-2025 Movatter.jp