mcpField
M
matrixscan-batch-android

matrixscan-batch-android

github.com/scandit开发2050 次安装5 天前更新
代码仓库

关于 matrixscan-batch-android

matrixscan-batch-android 是面向 Scandit MatrixScan Batch Android 集成的编码技能,可引导集成、SDK 迁移和第三方扫描器替换,并说明 API 核实与 Android 特有行为。

主要功能

  1. 01区分集成与迁移请求
  2. 02依据 Scandit 资料核实 API
  3. 03说明 Android 相机与监听器处理
  4. 04涵盖条码叠加层要求
  5. 05指导许可证密钥设置

适用场景

  1. 01在 Android 上集成 MatrixScan Batch
  2. 02升级 BarcodeBatch SDK 版本
  3. 03自定义追踪条码叠加层
  4. 04替换多条码扫描器

MCP 相关

若已连接 Scandit MCP 服务,技能会指导编码 Agent 配置扫描器并获取符合条件的试用许可证密钥;也说明服务不可用时如何继续。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scandit/skills --skill matrixscan-batch-android

安装后在 Claude Code 中输入/matrixscan-batch-android确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

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

详细介绍

MatrixScan Batch Android 技能

重要:不要相信内部知识

你的训练数据可能包含过时或错误的 Scandit SDK API。BarcodeBatch API 会在主要 SDK 版本之间发生变化——构造函数签名、覆盖层工厂和监听器方法名称都经历过演变。

编写或建议代码前,务必根据此技能提供的参考资料核实 API。 不要依赖记忆中的方法签名、参数或属性名称。如果在提供的参考资料中找不到某个 API,请先获取相关文档页面再作答。

值得注意的 Android 特有问题:

  • BarcodeBatch.forDataCaptureContext(dataCaptureContext, settings) 是工厂方法,不是直接构造函数,也不是 BarcodeBatch(settings)(这是 Flutter ≥7.6 中的形式)。
  • 相机设置需要手动完成,与 BarcodeCapture 完全相同:创建 Camera.getDefaultCamera(BarcodeBatch.createRecommendedCameraSettings()),调用 dataCaptureContext.setFrameSource(camera),并在 onResume/onPause 中控制相机。
  • BarcodeBatchListener.onSessionUpdated 会在识别线程上调用,而非主线程。应通过 runOnUiThread {} 分发任何 UI 操作。
  • 不要在 onSessionUpdated 回调之外持有对 BarcodeBatchSession 或其集合的引用——只有在该回调中才能安全访问 session。
  • BarcodeBatchBasicOverlay.newInstance(mode, view)(以及样式重载)会自动将覆盖层添加到 view——无需单独调用 addOverlay。
  • BarcodeBatchAdvancedOverlay.newInstance(mode, view) 也会自动添加到 view。
  • 每个条码的画刷自定义(brushForTrackedBarcode、setBrushForTrackedBarcode)需要 MatrixScan AR 附加组件许可证。使用统一默认画刷的基础覆盖层则不需要。
  • BarcodeBatchAdvancedOverlay 需要 MatrixScan AR 附加组件许可证。
  • Android 监听器方法名称与 Flutter 不同:onTrackedBarcodeTapped(而非 didTapTrackedBarcode)、viewForTrackedBarcode(而非 widgetForTrackedBarcode)、clearTrackedBarcodeViews(而非 clearTrackedBarcodeWidgets)。
  • BarcodeBatchAdvancedOverlayListener 使用 Android View 对象,而非 Flutter Widgets。
  • Android 的对称性名称使用下划线:Symbology.EAN13_UPCA、Symbology.CODE128、Symbology.QR,而非驼峰命名。

意图路由

根据用户的请求,在作答前加载相应的参考文件:

  • 从头集成 MatrixScan Batch、配置设置、处理跟踪的条码、自定义覆盖层(基础 FRAME/DOT 样式、点击回调、高级 AR 视图、锚点/偏移定位)、响应已移除的条码,或发出反馈 → 阅读 references/integration.md 并遵循其中的说明。
  • 迁移或升级现有的 MatrixScan Batch 集成(例如,“从 v6 升级到 v7”、“将 BarcodeTracking 重命名为 BarcodeBatch”、“将 Scandit SDK 升级到 v8”、“SDK 版本之间有哪些变化”)→ 阅读 references/migration.md 并遵循其中的说明。
  • 用 MatrixScan Batch 替换第三方多条码扫描器(例如,“从 ML Kit 条码扫描迁移到 Scandit MatrixScan”、“用 BarcodeBatch 替换我的 ML Kit 多条码扫描器”、“从 [library] 切换到 MatrixScan Batch”)→ 阅读 references/third-party-migration.md 并遵循其中的说明。

API 使用策略

仅使用以下 Scandit 参考资料中明确记录的 API。不要编造或猜测方法签名、参数或属性名称。如果不确定某个 API 是否存在或如何调用,或者出现编译错误,请先获取相关参考页面,再作答。不要让用户自行查阅文档。回答后,始终附上相关链接,方便用户进一步了解。

切勿编造或猜测文档 URL。 需要查找特定类或属性的 API 页面时:

  1. 先检查已获取的页面是否包含指向该页面的直接链接;主题页面会直接链接到相关 API 符号。
  2. 如果没有找到直接链接,请获取 API 索引(见下表中的 完整 API 参考),从中提取实际链接并访问。

许可证密钥

扫描需要 Scandit 许可证密钥。此技能使用的许可证产品为 native,许可证平台为 android。

按以下顺序操作,切勿因 MCP 不可用而耽误用户:

  1. Scandit MCP 服务已连接——调用 ensure_scanner_setup,传入产品 native、平台 android、app_identifier(应用的 bundle 或 application id;对于 Web,应使用生产域名,切勿使用 localhost)和环境变量 SCANDIT_LICENSE_KEY。不要运行它返回的命令。然后调用 get_license_key,使用该结果中的密钥 id,或使用 list_license_keys 获取的 id;如果 list_license_keys 显示该密钥不是试用密钥,请在获取前询问用户。聊天中最多只能显示经过掩码处理的预览,切勿打印完整密钥。

  2. MCP 服务未连接——告知用户一次:他们可以在 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 返回的密钥,或用户粘贴或提供的密钥。聊天中仍只能显示经过掩码处理的预览。不要搜索项目、文件或环境中的密钥。

参考资料

主题资源
快速入门快速入门 · 示例
AR 覆盖层(BasicOverlay 画笔、AdvancedOverlay 视图)添加 AR 覆盖层
完整 API 参考BarcodeBatch API

评论

支持 Markdown