22

だから私は、アプリに ZXing バーコード スキャナーを埋め込む必要がある不運な Android 開発初心者です。

ここstackoverflowでこれを行う方法を尋ねる質問はたくさんありますが、初心者にとって本当に理解しやすく説明的な答えはありません。すべての答えは、「あなたがしなければならないのは、ZXing プロジェクトのコア lib をビルドし、プロジェクトを参照してから、ZXing の android/directory からアプリにいくつかのコードをコピーするだけです」のようなものです。しかし、これは初心者にとってはあまり役に立ちません。

プロジェクトで参照されている ZXings コア ライブラリがあります。バーコード スキャナー アプリのソースを開いています。バーコード スキャナー アプリのコードを読んで理解しようとしていますが、私の知識レベルでは複雑すぎます。

押すとバーコードスキャナーが開くボタンをアプリに配置したいだけです。スキャナーはバーコードをスキャンしてデコードし、番号を返すことしかできません。コードをどこにでも送信する必要はありません。情報などを入手してください。これらのことは自分で処理してください。ボタンのクリックで開始し、コードをスキャンして結果を返す単純なスキャナーが必要なだけです。しかし、私は自分でそれを行う方法を理解できません。ZXing スキャナーからテキストをコピーする必要があるだけであれば、これは難しいことではないと思います。そのコードを理解する必要があるだけです。

したがって、誰かがこれを説明できる場合 (コードのどの部分をコピーするか、ボタンの onClick メソッドでスキャナーを起動する方法など) を説明してください。なれ。

4

2 に答える 2

22

私はあなたが求められていることを正確に行わなければなりませんでした。それほど簡単ではありませんでしたが、それほど悪くもありませんでした。また、これは私の最初の (商用またはその他の) Android アプリでもありました。私がしたことは:

  • ZXing プロジェクトをコンパイルしてマシン上で実行します。これを行う方法に関する優れたチュートリアルがここにあります。
  • このコードをニーズに合わせて調整してください。プロジェクトの大部分を取り除いて、基本的なスキャナーだけにしました。次に、それを中心に残りのプロジェクトを構築しました。その方法は次のとおりです。

  • コアの CaptureActivity をできるだけシンプルに調整します。必要なのは、コア スキャナ コードから返された番号だけです。これが私のプロジェクトの構造の写真です:

Adapted ZXing プロジェクトの構造

  • 変更したアクティビティ クラスを機能させるには、4 つのファイルを変更する必要があることがわかります。これらのファイルは、CameraCaptureActivity クラス、CaptureActivityHandler クラス、Decode Thread および Decode ハンドラ クラスです。これらのファイルはこちらでホストしています。

  • これら 4 つのファイルを取り、ZXing 作業プロジェクトのコピーに入れます。元の CaptureActivity と、置き換えた他の元のスレッドとハンドラー クラスを削除します。(CaptureActivityHandlerDemo ファイルは、誤ってそこに配置されたため、無視してください)

  • 作業中の ZXing パッケージ名と一致するようにパッケージ名を変更します。これら 4 つのクラスすべてで、アクティビティの名前が同じであることを確認してください。アクティビティ クラス自体ではなく、「getHolder」を実装するインターフェイスを渡すことをお勧めします。

  • アクティビティ名に変更を加えてマニフェストを更新したことを確認してください。アクティビティに移動する方法があることを確認してください。おそらく、インテント フィルター領域でデフォルト クラスにします。

  • アクティビティ用のレイアウト ファイルも含めました。これは非常にシンプルですが、スキャナーを起動して動作させるために必要なことはすべてです。それは camera_capture.xml と呼ばれます

うまくいけば、これが起動して実行するために必要なすべてです。これは簡単なプロセスではなく、残念ながら商用製品であるため、プロジェクト全体を紹介することはできません.

幸運を!!

PSこの回答に対するコメントとして質問を投稿してください。できる限りお手伝いします。

于 2011-05-12T02:56:06.053 に答える
7

Barcode Scanner をフォークしてライブラリ プロジェクトに変換し、IntentIntegrator を介してバーコードをスキャンするだけの場合に不要な機能のほとんどを削除しました。

説明付きのプロジェクトは、https://github.com/embarkmobile/zxing-android-minimalで入手できます。

すでに Maven を使用している場合、プロジェクトに含めるのは非常に簡単です。そうでない場合は、CaspNZ で説明されているアプローチを使用して、コードをプロジェクトにコピーできます。

于 2012-12-14T15:50:30.997 に答える