mcpField
B
barcode-capture-android

barcode-capture-android

github.com/scandit開発2061 回インストール5 日前に更新
リポジトリ

barcode-capture-android について

AndroidでScandit BarcodeCaptureを統合、更新、置き換えるためのコーディングスキルです。資料でSDK APIを確認し、Android固有のカメラ、スレッド、スキャンコールバックを適切に扱う方法を示します。

主な機能

  1. 01資料に基づくAPI確認
  2. 02統合と移行のガイド
  3. 03カメラのライフサイクル管理
  4. 04バックグラウンドスレッドのコールバック案内
  5. 05Scanditライセンス設定の案内

活用シーン

  1. 01Androidアプリへのバーコードスキャン追加
  2. 02既存のScandit統合の更新
  3. 03別のスキャンライブラリからの置き換え

MCP 対応

リモートのScandit MCPサーバーを使ったスキャナーライセンスの設定と、トライアルキーの取得方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scandit/skills --skill barcode-capture-android

インストール後、Claude Code で/barcode-capture-androidを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
integration.md
migration.md
third-party-migration.md

詳細

BarcodeCapture Android スキル

重要:内部知識を鵜呑みにしないでください

学習データには、古い、または誤った Scandit SDK API が含まれている可能性があります。BarcodeCapture API はメジャー SDK バージョン間で大幅に変更され、プロパティの名前変更、削除、再構成が行われます。

コードを作成または提案する前に、必ずこのスキルで提供されているリファレンスで API を確認してください。 記憶しているメソッドシグネチャ、パラメーター、プロパティ名に頼らないでください。提供されているリファレンスに API が見つからない場合は、回答する前に該当するドキュメントページを取得してください。

注意すべき Android 固有の落とし穴:

  • Camera.getDefaultCamera(BarcodeCapture.createRecommendedCameraSettings()) は、推奨カメラ設定を getDefaultCamera() の呼び出しに直接渡します。別途 applySettings を呼び出す必要はありません。
  • codeDuplicateFilter は TimeInterval です。Int や Double ではありません。TimeInterval.millis(500) を使用してください(com.scandit.datacapture.core.time.TimeInterval をインポートします)。codeDuplicateFilter = 0.5 または codeDuplicateFilter = 500 と書くと、型エラーになります。
  • Android のリスナーコールバックは onBarcodeScanned(barcodeCapture, session, data) です。didScan ではありません(これは Flutter/iOS での名前です)。さらに、onSessionUpdated、onObservationStarted、onObservationStopped も実装する必要があります。FrameData パラメーターの名前は frameData ではなく data です。
  • onBarcodeScanned はバックグラウンドスレッドで呼び出されます。UI を更新する場合は、runOnUiThread {} を介してディスパッチしてください。
  • 重複スキャンや競合状態を防ぐため、処理を始める前に onBarcodeScanned の冒頭で barcodeCapture.isEnabled = false を呼び出してください。アプリが再びスキャンできる状態になったら、barcodeCapture.isEnabled = true で再度有効にします。
  • Android のシンボロジー名にはアンダースコアを使用します。Symbology.EAN13_UPCA、Symbology.CODE39、Symbology.INTERLEAVED_TWO_OF_FIVE のように記述し、キャメルケースにはしません。
  • onPause() でカメラをオフにし、onResume() で再度有効にしてください。アプリがバックグラウンドにある間、カメラをアクティブにしてはいけません。
  • 最初のスキャンの前に、実行時に CAMERA 権限をリクエストしてください。マニフェストで宣言するだけでは不十分です。
  • DataCaptureView.newInstance(this, dataCaptureContext) はカメラプレビューウィジェットを作成します。Activity では setContentView(dataCaptureView) に渡します。Fragment では、プログラムによってビュー階層に追加します。

インテントの振り分け

ユーザーのリクエストに基づいて、回答する前に適切なリファレンスファイルを読み込んでください。

  • BarcodeCapture を一から統合する、設定を構成する、フィードバックをカスタマイズする、ビューファインダーを追加する、スキャンを処理する、またはスキャン後に非同期処理を行う(例:「アプリに BarcodeCapture を追加する」「バーコードスキャンを設定する」「Android で BarcodeCapture を使うには?」「重複スキャンをフィルタリングする」「ビープ音を抑制する」「ビューファインダーを追加する」「バーコードを検索する間スキャンを無効にする」)→ references/integration.md を読み、そこに記載された手順に従ってください。
  • 既存の BarcodeCapture 統合を移行またはアップグレードする(例:「v6 から v7 にアップグレードする」「BarcodeCapture を移行する」「Scandit SDK を v8 に上げる」「SDK バージョン間で何が変わったか」)→ references/migration.md を読み、そこに記載された手順に従ってください。
  • サードパーティ製バーコードスキャナーを BarcodeCapture に置き換える(例:「ZXing スキャナーを BarcodeCapture に置き換える」「ML Kit のバーコードスキャンから Scandit に移行する」「[library] から BarcodeCapture に切り替える」)→ references/third-party-migration.md を読み、そこに記載された手順に従ってください。

API の使用ポリシー

以下の Scandit のリファレンスで明示的に文書化されている API のみを使用してください。メソッドのシグネチャ、パラメーター、プロパティ名を推測したり、作り出したりしないでください。API が存在するかどうか、または呼び出し方が不明な場合、あるいはコンパイルエラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ユーザーに自分でドキュメントを確認するよう伝えないでください。回答後は、ユーザーが詳しく確認できるよう、必ず関連リンクを含めてください。

ドキュメントの URL を決して組み立てたり、推測したりしないでください。 特定のクラスやプロパティの API ページが必要な場合は、次の手順に従ってください。

  1. まず、すでに取得したページに直接リンクがあるか確認してください。トピックページには、関連する API シンボルへの直接リンクがあります。取得を依頼する際は、必ず本文とともにリンクも要求してください。
  2. 直接リンクが見つからない場合は、API インデックス(以下の表の Full API reference を参照)を取得し、そこから実際のリンクを抽出して、そのリンク先にアクセスしてください。

URL の構造は異なる場合があります(例:api/ui/ サブディレクトリ)。推測すると 404 エラーにつながります。

ライセンスキー

スキャンには Scandit ライセンスキーが必要です。このスキルのライセンス製品は native、ライセンスプラットフォームは android です。

次の手順を順に実行してください。MCP のためにユーザーを待たせてはいけません。

  1. Scandit MCP サーバーが接続されている場合 — 製品に native、プラットフォームに android、app_identifier にアプリのバンドル ID またはアプリケーション ID(Web の場合は本番ドメイン。localhost は使用しない)、env_var に SCANDIT_LICENSE_KEY を指定して ensure_scanner_setup を呼び出してください。返されたコマンドは実行しないでください。次に、その結果または list_license_keys から取得したキーの ID を使って get_license_key を呼び出してください。list_license_keys でキーがトライアルではないと示された場合は、取得する前にユーザーに確認してください。チャットにはマスクしたプレビューのみを表示し、キー全体は決して出力しないでください。

  2. 接続されていない場合 — MCP クライアントでリモート Scandit MCP サーバー https://ssl.scandit.com/mcp に接続できることを一度だけユーザーに伝えてから、手順 1 を続けてください。MCP クライアントの設定を自分で編集しないでください。

    認証はブラウザー経由で行われるため、ヘッドレス環境または CI ではサポートされていません。サーバーが発行するのはトライアルキーのみです。本番ライセンスの作成、失効、変更は行いません。

  3. ユーザーが希望しない場合、または MCP クライアントを持っていない場合 — https://ssl.scandit.com でユーザー自身がキーを生成し、貼り付けてもらってください(アカウントをまだ持っていない場合は、https://ssl.scandit.com/dashboard/sign-up?p=test)。

その後、キーをコードに記述してください。プレースホルダーの箇所に、ライセンスキー呼び出しのためのキー(get_license_key が返したキー、またはユーザーが貼り付けたキーや提供したキー)を設定してください。チャットには引き続きマスクしたプレビューのみを表示してください。キーを探すためにプロジェクト、ファイル、環境を検索しないでください。

リファレンス

ユーザーの質問に応じて、適切なリソースを案内してください。

トピックリソース
はじめにはじめに · サンプル
高度なトピック(カスタムフィードバック、ビューファインダー、場所の選択、スキャンインテント、複合コード)高度な設定
SDK のメジャーバージョン間の移行6 → 7 · 7 → 8
API リファレンス全体BarcodeCapture API

コメント