关于 matrixscan-batch-android
matrixscan-batch-android 是面向 Scandit MatrixScan Batch Android 集成的编码技能,可引导集成、SDK 迁移和第三方扫描器替换,并说明 API 核实与 Android 特有行为。
主要功能
- 01区分集成与迁移请求
- 02依据 Scandit 资料核实 API
- 03说明 Android 相机与监听器处理
- 04涵盖条码叠加层要求
- 05指导许可证密钥设置
适用场景
- 01在 Android 上集成 MatrixScan Batch
- 02升级 BarcodeBatch SDK 版本
- 03自定义追踪条码叠加层
- 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.mdmigration.mdthird-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使用 AndroidView对象,而非 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 页面时:
- 先检查已获取的页面是否包含指向该页面的直接链接;主题页面会直接链接到相关 API 符号。
- 如果没有找到直接链接,请获取 API 索引(见下表中的 完整 API 参考),从中提取实际链接并访问。
许可证密钥
扫描需要 Scandit 许可证密钥。此技能使用的许可证产品为 native,许可证平台为 android。
按以下顺序操作,切勿因 MCP 不可用而耽误用户:
-
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显示该密钥不是试用密钥,请在获取前询问用户。聊天中最多只能显示经过掩码处理的预览,切勿打印完整密钥。 -
MCP 服务未连接——告知用户一次:他们可以在 MCP 客户端中连接远程 Scandit MCP 服务
https://ssl.scandit.com/mcp,然后继续执行第 1 步。不要自行修改 MCP 客户端配置。身份验证通过浏览器完成,因此不支持无头环境或 CI。该服务仅提供试用密钥;绝不会创建、撤销或修改生产许可证。
-
用户拒绝,或没有 MCP 客户端——让他们自行前往 https://ssl.scandit.com 生成密钥(还没有账户?请访问 https://ssl.scandit.com/dashboard/sign-up?p=test),然后粘贴给你。
然后将密钥写入代码:将密钥填入许可证密钥调用,替换占位符;使用 get_license_key 返回的密钥,或用户粘贴或提供的密钥。聊天中仍只能显示经过掩码处理的预览。不要搜索项目、文件或环境中的密钥。
参考资料
| 主题 | 资源 |
|---|---|
| 快速入门 | 快速入门 · 示例 |
| AR 覆盖层(BasicOverlay 画笔、AdvancedOverlay 视图) | 添加 AR 覆盖层 |
| 完整 API 参考 | BarcodeBatch API |