Developer Hub / バーコード / スキャナー

バーコードスキャナーの統合

1 つのスキャナ境界を構築し、ウェッジ、意図、または直接の結果を正規化し、すべてのセッションをきれいに閉じます。

公開基準開発者

対象端末にアプリを接続して検証します。

アプリケーションが所有する 1 つのイベント形状を配信する反復可能なスキャン フロー。

Android 開発者はハンドヘルド スキャナーを既存のアプリに統合しています。

公開資料は再現可能な実装パターンを中心にします。再配布制限のあるSDK、ファームウェア、メーカー資料は承認済み経路に限定します。

方法、バージョン、制約を伴う比較可能な根拠。

開発者向け資料バーコード / スキャナー
RuggedLayerテストラボ初心者
堅牢バーコード・RFID端末向け技術ガイド、SDK情報、サンプル、互換性データ。Android 開発者はハンドヘルド スキャナーを既存のアプリに統合しています。
  • バーコード結果を必要とするワークフローが 1 つある Android アプリ。
  • 正確なターゲット モデル Android がビルドされ、承認されたデバイス SDK が特定されました。
  • ウェッジ、意図的、または直接的な SDK トランスポートに関する決定。誤って混ぜないでください。

公開基準

版管理された根拠とともにAndroid業務連携を構築。

公開資料は再現可能な実装パターンを中心にします。再配布制限のあるSDK、ファームウェア、メーカー資料は承認済み経路に限定します。

  1. 01

    ワークフローのトランスポートを選択します

    焦点を絞ったフォームを迅速に改造する必要がある場合は、ウェッジを使用します。アプリケーションがイベントを所有する場合は、明示的なインテントまたはコールバックを使用します。ビジネス画面がベンダー タイプに依存しないように、小さなアダプターの背後でのみ直接デバイス API を使用します。

  2. 02

    アプリケーションが所有するイベントを定義する

    デコードされたテキスト、生のバイト、シンボル、受信時間をまとめて保存します。トランスポート ペイロードを信頼できない入力として扱い、欠落しているデータ、サイズが大きすぎるデータ、またはデコードできないデータをインベントリ ロジックに到達する前に拒否します。

  3. 03

    1 人の所有者で開く、聞く、開始する、停止する

    デコードを開始する前に結果パスを登録します。開始は 1 回だけで、ワークフローが終了すると停止し、バックグラウンド、キャンセル、エラーを含むすべての終了パスからデバイス リソースを閉じます。

  4. 04

    不幸な道を証明してください

    空のペイロード、重複した結果、タイムアウト、サポートされていないシンボル、画面の再開、スキャナー オプションのないデバイスをテストします。 1 つのデバイスでのグリーン スキャンは、すべての構成の互換性を示すものではありません。

サンプルアプリ / Kotlin

SDK・APIパターン

オリジナルアダプターパターン。 CapturePort をプライベート Android プロジェクト内の承認されたデバイス SDK にバインドします。

scan-boundary.kt

data class CaptureEvent(
  val value: String,
  val symbology: String?,
  val capturedAt: Instant,
)

interface CapturePort {
  fun open()
  fun start()
  fun stop()
  fun close()
  fun setListener(listener: (CaptureEvent) -> Unit)
}

class ScanWorkflow(private val scanner: CapturePort) {
  private var active = false

  fun begin(onCapture: (CaptureEvent) -> Unit) {
    if (active) return
    scanner.open()
    scanner.setListener(onCapture)
    scanner.start()
    active = true
  }

  fun end() {
    if (!active) return
    runCatching { scanner.stop() }
    runCatching { scanner.close() }
    active = false
  }
}
ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。

SDK配布

公開ゲート

ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。

値がないか、生のバイトがありません

入力エラーを返し、ワークフローを別のスキャンに使用できるようにします。

同じ結果が 2 回届きます

有効期間の短いイベント キーによって重複を排除します。在庫を黙って二重に受け取らないでください。

タイムアウトまたはスキャナーがビジー状態

現在の操作を停止し、回復可能な状態を示し、制御された再試行を許可します。

画面が前景から離れます

ワークフロー契約に従って停止または一時停止し、再開時に安全に再登録します。

証拠ステータス

方法、バージョン、制約を伴う比較可能な根拠。

  1. 01

    モデル、スキャナー オプション、 Android ビルド、ファームウェア、および SDK リリースを記録します。

  2. 02

    コールド スタート、繰り返し start/stop、background/resume、およびキャンセル テストを実行します。

  3. 03

    コード 128、破損したラベル、空のトリガー、および 1 つのサポートされていないシンボルを使用してください。

  4. 04

    未処理のスキャン データや顧客 ID が通常のログに書き込まれないことを確認します。

対象端末にアプリを接続して検証します。 ハードウェアを接続する前に、偽のアダプターを使用して同じイベント コントラクトを実行します。

資料

SDK・APIパターン

ベンダーのバイナリ、APIリファレンス、ファームウェア、ソースコード例は、再配布許可と対応範囲を記録してから公開します。

対象端末にアプリを接続して検証します。

機密情報を含まないアプリの業務フロー、現在の端末、連携方法を共有いただければ、最適な検証成果物の範囲を定めます。

アプリを接続して検証