Google 扫码器(仅限 Android)

Google 扫码器(仅限 Android)

Google Code Scanner API 提供了全面的扫描解决方案,无需您的应用请求相机权限,同时保护用户隐私。这是通过将扫描代码委托给 Google Play 服务并仅将扫描结果返回给您的应用来完成的(视频 1)。 所有图片处理操作都在设备上进行,并且 Google 不会存储结果或图片数据。该 API 支持与机器学习套件条形码扫描 API 相同的代码格式,并返回相同的 Barcode 对象。

此 API 非常适合需要无缝代码扫描(无需自定义界面或相机体验)的应用。该实现完全属于 Google Play 服务,可以确保对应用大小的影响最小。

对于需要自定义界面的更复杂的使用场景,我们建议直接使用 ML Kit Barcode Scanning API

如果您有任何疑问、想要提交 bug 或需要帮助,请查看机器学习套件社区页面

此 API 使用未捆绑库,必须先下载才能使用。如需了解详情,请参阅此指南

须知事项

此 API 需要 Android API 级别 21 或更高级别。确保应用的 build 文件使用的 minSdkVersion 值不小于 21。

为了让您的应用做好准备,请完成以下部分中的步骤。

配置您的应用

  1. 在顶级 settings.gradle 文件的 dependencyResolutionManagement 代码块下,添加 Google 的 Maven 代码库Maven 中央代码库

    复制代码
    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
  2. play-services-code-scanner SDK 的 Google Play 服务依赖项添加到模块的 Gradle build 文件(通常为 app/build.gradle)中:

    复制代码
    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
  3. 您可以将应用配置为让 Google Play 服务在您的应用从 Play 商店安装时自动将其下载到设备上。

    复制代码
    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>

    您还可以通过 Google Play 服务 ModuleInstallClient API 明确检查扫描器模块可用性并请求下载。

    如果您不启用安装时模块下载或请求显式下载,并且扫描器模块尚未针对其他用例进行安装,Google Play 服务会在首次使用扫描器模块时下载该模块。

扫描二维码

扫描条形码以执行下列步骤。

  1. 可选:配置扫码器。

    如果您知道自己要读取哪些格式的条形码,可以将条形码检测器配置为仅检测这些格式,从而加快条形码检测器的速度。例如,如需仅检测 Aztec 码和 QR 码,请按照以下示例构建 GmsBarcodeScannerOptions 对象:

    KotlinJava

    复制代码
    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(
           Barcode.FORMAT_QR_CODE,
           Barcode.FORMAT_AZTEC)
       .build();

    默认情况下,自动缩放功能处于关闭状态。如需启用 16.1.0 及更高版本的自动缩放功能,请调用 enableAutoZoom(),如以下代码示例所示。

    KotlinJava

    复制代码
    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build();
  2. 获取 GmsBarcodeScanner 的实例,如代码示例所示:

    KotlinJava

    复制代码
    GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
    // Or with a configured options
    // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
  3. 通过调用 startScan() 请求代码扫描。

    KotlinJava

    复制代码
    scanner
       .startScan()
       .addOnSuccessListener(
           barcode -> {
             // Task completed successfully
           })
       .addOnCanceledListener(
           () -> {
             // Task canceled
           })
       .addOnFailureListener(
           e -> {
             // Task failed with an exception
           });
  4. 处理生成的 Barcode

    KotlinJava

    复制代码
    String rawValue = barcode.getRawValue();
相关推荐
Ray Liang21 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解21 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
砖厂小工1 天前
用 GLM + OpenClaw 打造你的 AI PR Review Agent — 让龙虾帮你审代码
android·github
张拭心1 天前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
张拭心1 天前
Android 17 来了!新特性介绍与适配建议
android·前端
SimonKing1 天前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean1 天前
Jackson View Extension Spring Boot Starter
java·后端
Kapaseker1 天前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
黄林晴1 天前
Android17 为什么重写 MessageQueue
android
Seven971 天前
剑指offer-79、最⻓不含重复字符的⼦字符串
java