Google Code Scanner API はコードをスキャンするための完全なソリューションを提供
アプリがカメラ権限をリクエストしなくても、ユーザーを保護しながら
プライバシーを保護する。これを行うには、コード スキャンのタスクを
Google Play 開発者サービスとスキャン結果のみをアプリに返す(動画 1)。
画像処理はすべてデバイス上で行われ、Google は結果を保存しません
画像データなどです。API は、Terraform の
ML Kit Barcode Scanning API を使用して、
同じ Barcode
渡されます。
この API は、コード不要でシームレスなコードスキャンを必要とするアプリに最適です カスタム UI やカメラ操作が可能です実装はすべて アプリのサイズへの影響を最小限に抑えます。
バージョン 16.1.0 以降では、自動ズームを有効にして Google コードが カメラから遠くにあるバーコードを自動的にスキャンできます。日時 デバイスがバーコードにかざすと、スキャナがインテリジェントに バーコードにズームインしますこれにより、手動ズームが不要になります バーコード スキャンの速度、精度、利便性が向上 (動画 2 を参照)。
動画 1.Google コードスキャナの統合 | 動画 2.自動ズーム効果 |
カスタム UI を必要とするより複雑なユースケースでは、 ML Kit Barcode Scanning API を直接使用します。
ご不明な点、バグの報告、サポートのご要望がございましたら、 ML Kit コミュニティ ページ
<ph type="x-smartling-placeholder">始める前に
<ph type="x-smartling-placeholder">アプリを準備するには、以下のセクションに示す手順を完了します。
アプリを設定する
最上位の
settings.gradle
ファイルに以下を含めます。 Google の Maven リポジトリと Maven セントラル リポジトリ(dependencyResolutionManagement
ブロック:dependencyResolutionManagement { repositories { google() mavenCentral() } }
play-services-code-scanner
の Google Play 開発者サービスの依存関係を追加する SDK をモジュールの Gradle ビルドファイル(通常はapp/build.gradle
)に追加します。dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }
Google Play 開発者サービスが自動的に実行されるようにアプリを設定できます アプリのインストール時に、スキャナ モジュールをデバイスにダウンロードできます。 。
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
スキャナ モジュールの可用性とリクエストを明示的に確認して、 Google Play 開発者サービスの ModuleInstallClient からダウンロードし、 API。
インストール時のモジュール ダウンロードを有効にしない場合、または明示的なリクエストを行わない場合 スキャナ モジュールがまだインストールされておらず、 - Google Play 開発者サービスは最初にスキャナ モジュールをダウンロードします。 使用されます。
コードをスキャンする
バーコードをスキャンするには、次の手順を実装します。
省略可: コードスキャナを構成します。
読み取るバーコードの形式がわかっている場合は、 認識されるように設定することで、バーコード検出器の速度を 使用できます。たとえば、Aztec コードと QR コードのみを検出するには、
GmsBarcodeScannerOptions
オブジェクトを次のように変更します。Kotlin
val options = GmsBarcodeScannerOptions.Builder() .setBarcodeFormats( Barcode.FORMAT_QR_CODE, Barcode.FORMAT_AZTEC) .build()
Java
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder() .setBarcodeFormats( Barcode.FORMAT_QR_CODE, Barcode.FORMAT_AZTEC) .build();
デフォルトでは、自動ズームはオフになっています。自動ズーム機能を有効にする バージョン 16.1.0 以降では、次に示すように
enableAutoZoom()
を呼び出します。 見てみましょう。Kotlin
val options = GmsBarcodeScannerOptions.Builder() .setBarcodeFormats(...) .enableAutoZoom() // available on 16.1.0 and higher .build()
Java
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder() .setBarcodeFormats(...) .enableAutoZoom() // available on 16.1.0 and higher .build();
GmsBarcodeScanner
のインスタンスを取得します。 次のコードサンプルをご覧ください。Kotlin
val scanner = GmsBarcodeScanning.getClient(this) // Or with a configured options // val scanner = GmsBarcodeScanning.getClient(this, options)
Java
GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this); // Or with a configured options // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
startScan()
を呼び出して、コードのスキャンをリクエストします。Kotlin
scanner.startScan() .addOnSuccessListener { barcode -> // Task completed successfully } .addOnCanceledListener { // Task canceled } .addOnFailureListener { e -> // Task failed with an exception }
Java
scanner .startScan() .addOnSuccessListener( barcode -> { // Task completed successfully }) .addOnCanceledListener( () -> { // Task canceled }) .addOnFailureListener( e -> { // Task failed with an exception });
結果の
Barcode
を処理します。Kotlin
val rawValue: String? = barcode.rawValue
Java
String rawValue = barcode.getRawValue();