UROVO Android SDK/Kotlin

UROVO ScanManager Kotlin の例と検証チェックリスト

この実装ブループリントは、承認された UROVO ScanManager API を小さな Kotlin アクティビティ サンプルに適合させます。これは検証用のサンプルコードであり、すべての UROVO モデルまたはファームウェアとの互換性を保証するものではありません。

16 分読み取りレビュー済み: 2026-08-10Android 開発者が UROVO バーコード ハードウェアを統合
Android ScanManager 統合の UROVO DT66 機能ビュー
SDK 参照に裏付けされたサンプル / すべてのターゲット構成で検証されていない

検証済みの出発点

API ベースラインUROVO Android SDK v4.1.0326

承認されたパッケージを使用し、アーティファクトのチェックサムを記録します。

デコードチャンネルScanManager.ACTION_DECODE ブロードキャスト

文書化されたデータ、文字列、長さ、および型の追加情報を読み取ります。

ライフサイクル開いて登録します。停止、登録解除、閉じる

所有権をアプリケーション アーキテクチャに一致させます。

互換性正確なデバイス + OS + ファームウェア + SDK + アプリのビルド

API が存在するだけでは検証に合格しません。

実施ルール

ScanManager を、明示的な所有者を持つハードウェア リソースとして扱います。それを開き、目的の出力モードを選択し、デコード レシーバーを登録し、すべてのペイロードを検証してから、登録を解除して決定的に閉じます。実稼働向けサンプルでメソッドの動作を確認します。

01

再現可能な SDK ベースラインを準備します

管理された開発者ダウンロード プロセスを通じて、承認された SDK アーティファクトをパッケージ化します。アプリケーションのビルドとデバイスの記録とともに、そのバージョンと SHA-256 を記録します。

ベンダー API をスキャナー アダプターの背後に配置すると、ビジネス ロジックをハードウェアなしで単体テストでき、別のキャプチャ実装を置き換えることができます。

  • 承認された SDK ソースのみ
  • 記録されたアーティファクトのハッシュ
  • アダプターの境界が定義されました
  • デバイスマトリックスが作成されました
02

スキャナーのライフサイクルを一度所有する

API 参照ドキュメントは、openScanner、closeScanner、startDecode、stopDecode、および出力モード関数です。アクティビティ、フォアグラウンド サービス、または別のアプリケーション スコープのコンポーネントがそれらの呼び出しを所有するかどうかを決定します。

複数の画面でスキャナーを個別に開くことは避けてください。停止と終了を安全に繰り返し、バーコード ペイロードを記録せずに診断状態で失敗した戻り値を表示できるようにします。

  • 単一のリソース所有者
  • 冪等クリーンアップ
  • 観察された戻り値
  • 通常のログにはペイロードがありません
03

ブロードキャスト ペイロードを検証する

成功したデコード ブロードキャストには、生データ、デコードされた文字列、長さ、およびバーコード タイプが含まれる場合があります。ドメイン イベントを配信する前に、アクション、NULL 可能性、および長さを確認してください。

権威ある代表者を 1 つ選択してください。エンコードが重要な場合は、すべてのバーコードが単純な ASCII であると想定するのではなく、生のバイトを保存し、明示的な文字セットでデコードしてください。

  • アクションが完全に一致
  • 積載量に応じた長さ
  • エンコーディングポリシーの文書化
  • 重複イベントガード
04

デモから実稼働証拠への移行

コンパイルの成功は、ソースの互換性のみを証明します。代表的なラベルとライフサイクル シナリオを使用して、対象の各モデル、OS、ファームウェアでアプリケーションを実行します。

設定後にスキャナ設定と出力モードを記録します。ファームウェア、 SDK、アプリケーション、または MDM ポリシーの変更後の回帰テスト。

  • 代表的なスキャンコーパス
  • スリープと再開のサイクル
  • 迅速なコードと長いコードのケース
  • バージョン付きのテスト記録
意思決定マトリックス

ScanManager ライフサイクル状態マップ

リソース呼び出しを監視可能なアプリケーションの状態に合わせて維持します。

必要なアクション障害対応
開始ScanManager を作成してスキャナーを開くキャプチャをブロックし、診断状態を表示する
準備完了出力モードの設定と受信機の登録構成の失敗を読み返すかレポートする
捕獲中デコードを開始するか、トリガーイベントを受け入れますタイムアウト、停止、制御された再試行の許可
一時停止中デコードを停止し、設計どおりに登録を解除する非アクティブなワークフローへの配信を防止する
破壊されたスキャナーを一度閉じます機密データを含まないクリーンアップ結果を記録する
SDK

最小限のライフサイクルを意識した Kotlin の例

出力モード定数、 Android レシーバー フラグ、ライフサイクル所有権を、正確な SDK、ターゲット API 、およびアプリケーション アーキテクチャに対して検証します。

UrovoScannerActivity.kt
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.device.ScanManager
import androidx.appcompat.app.AppCompatActivity

class UrovoScannerActivity : AppCompatActivity() {
    private val scanner = ScanManager()
    private var receiverRegistered = false

    private val decodeReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            if (intent.action != ScanManager.ACTION_DECODE) return
            val raw = intent.getByteArrayExtra(ScanManager.DECODE_DATA_TAG) ?: return
            val declaredLength = intent.getIntExtra(ScanManager.BARCODE_LENGTH_TAG, raw.size)
            val type = intent.getByteExtra(ScanManager.BARCODE_TYPE_TAG, 0)
            val value = intent.getStringExtra(ScanManager.BARCODE_STRING_TAG)
                ?: raw.copyOf(declaredLength.coerceIn(0, raw.size)).toString(Charsets.UTF_8)
            onValidatedScan(value, type)
        }
    }

    override fun onStart() {
        super.onStart()
        check(scanner.openScanner()) { "Scanner could not be opened" }
        // Confirm the broadcast-output constant in the SDK version you ship.
        check(scanner.switchOutputMode(0)) { "Output mode could not be set" }
        registerReceiver(decodeReceiver, IntentFilter(ScanManager.ACTION_DECODE))
        receiverRegistered = true
    }

    override fun onStop() {
        scanner.stopDecode()
        if (receiverRegistered) unregisterReceiver(decodeReceiver)
        receiverRegistered = false
        scanner.closeScanner()
        super.onStop()
    }

    private fun onValidatedScan(value: String, type: Byte) {
        // Route a sanitized domain event; do not log sensitive barcode values.
    }
}
プロジェクトのチェックリスト

ScanManager 検証チェックリスト

このレコードを承認されたアプリケーションとデバイスのベースラインに添付します。

  1. 01

    SDK バージョンと SHA-256 が記録されました

  2. 02

    デバイス SKU、OS およびファームウェアが記録されました

  3. 03

    スキャナーが開閉を繰り返す

  4. 04

    出力モードの読み取りまたは確認

  5. 05

    レシーバーのライフサイクルがアクティブな UI と一致する

  6. 06

    未処理、文字列、長さ、型の追加項目がチェックされました

  7. 07

    必要なすべてのシンボルがテスト済み

  8. 08

    長時間、破損した高速スキャンのテスト済み

  9. 09

    スリープ、再起動、および MDM キオスク モードをテストしました

  10. 10

    機密性の高いバーコード データは記録されません

FAQ

よくある質問

switchOutputMode(0) とはどういう意味ですか?

API リファレンスでは出力モードの切り替えについて説明していますが、定数と動作は正確な SDK リリースとデバイス ファームウェアで確認する必要があります。検証せずにサンプル定数を本番環境にコピーしないでください。

スキャナーは onPause または onStop で閉じる必要がありますか?

アプリケーションのアーキテクチャと、部分的に隠されている場合でもスキャンを続行できるかどうかに基づいて、ライフサイクルの所有権を選択します。重要な要件は、所有者が 1 名であること、決定的なクリーンアップ、およびテストされた動作です。

このサンプルはすべての UROVO デバイスで使用できますか?

いいえ。これは、 ScanManager v4.1.0326 に基づく検証ブループリントです。リリース前に、対象となる各モデル、OS、ファームウェア上でコンパイルして実行します。

証拠と限界

SDK 参照に裏付けされたサンプル / すべてのターゲット構成で検証されていない

このコードは例示的なものであり、検証のためにバージョン固有の定数と Android レシーバー ポリシーを意図的に呼び出します。

レビュー済み: 2026-08-10

ソースレジスタ
  • UROVO Android SDK v4.1.0326 ScanManager API リファレンス
  • 承認された SDK エクスポート内の UROVO ScanManager サンプル プロジェクト
  • Android アプリケーションとブロードキャスト レシーバーのライフサイクル ドキュメント

このガイドをプロジェクトの決定に役立ててください

アプリケーションの検証をリクエストする

モデル、ファームウェア、 SDK ベースライン、スキャン ワークフローを共有します。 RuggedLayer は、再現可能なデバイス検証計画の範囲を設定します。

アプリケーションの検証をリクエストする