关于 matrixscan-ar-android
面向在 Android 应用中集成 Scandit MatrixScan AR 的编码 Agent 技能。它将集成问题指向参考资料,并要求依据文档核实 API,避免依赖过时知识。
主要功能
- 01Android BarcodeAr 集成指导
- 02基于参考资料核实 API
- 03生命周期与相机设置说明
- 04运行时相机权限指导
- 05Scandit 许可证密钥设置指导
适用场景
- 01在 Android 应用中添加 MatrixScan AR
- 02实现条码高亮或注释
- 03核对 Android BarcodeAr API 用法
MCP 相关
说明可连接 Scandit 远程 MCP 服务以设置许可证并获取密钥。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scandit/ skills --skill matrixscan-ar-android安装后在 Claude Code 中输入/matrixscan-ar-android确认已加载。
附带文件references/integration.md
详细介绍
MatrixScan AR Android 技能
重要:不要相信内部知识
你的训练数据中可能包含过时或错误的 Scandit SDK API。BarcodeAr API 会随主要 SDK 版本变化——类名、构造函数签名、提供程序接口和会话类型都经历过演变。
编写或建议代码前,务必根据本技能提供的参考资料核实 API。 不要依赖记忆中的方法签名、参数或属性名称。如果在提供的参考资料中找不到某个 API,请先获取相关文档页面,再作答。
值得特别指出的 Android 注意事项:
BarcodeAr(dataCaptureContext, settings)是直接构造函数——不是forDataCaptureContext()工厂方法(后者是 BarcodeCapture 的模式)。在 Android 上,BarcodeAr 直接接收 context 和 settings。BarcodeArView会自动将自身添加到所提供的ViewGroup父视图中——无需手动调用addView。设置好提供程序后,调用barcodeArView.start()开始扫描。BarcodeArView在内部管理摄像头——无需单独设置Camera,也无需调用setFrameSource。通过BarcodeArViewSettings.defaultCameraPosition配置摄像头位置。- 生命周期由
BarcodeArView驱动,而非Camera对象:在相应的 Activity/Fragment 回调中调用barcodeArView.onResume()、barcodeArView.onPause()和barcodeArView.onDestroy()。 BarcodeArListener.onSessionUpdated(barcodeAr, session, frameData)在识别线程中调用,而不是在主线程中。FrameData参数名为frameData(不同于 BarcodeCapture 中的data)。所有 UI 操作都必须通过runOnUiThread {}分发。BarcodeArHighlightProvider.highlightForBarcode和BarcodeArAnnotationProvider.annotationForBarcode在主线程中调用。结果通过回调传递——调用callback.onData(highlight)或callback.onData(annotation)(传入null可隐藏元素)。高亮和注释的构造函数都以Context作为第一个参数(例如BarcodeArRectangleHighlight(context, barcode))。- Android 的码制名称使用下划线:
Symbology.EAN13_UPCA、Symbology.CODE39——而不是驼峰命名。 - 在
BarcodeArSettings中,默认禁用所有码制。只启用应用所需的码制可提升追踪性能。 - 开始扫描前,必须在运行时请求
CAMERA权限;仅在清单中声明权限并不足够。 BarcodeArFeedback位于com.scandit.datacapture.barcode.ar.feedback中——不在ar.capture中。导入:import com.scandit.datacapture.barcode.ar.feedback.BarcodeArFeedback。BarcodeArInfoAnnotationBodyComponent位于com.scandit.datacapture.barcode.ar.ui.annotations.info中——不在ar.ui.annotations中。导入:import com.scandit.datacapture.barcode.ar.ui.annotations.info.BarcodeArInfoAnnotationBodyComponent。同一个info子包还包含BarcodeArInfoAnnotationHeader、BarcodeArInfoAnnotationFooter、BarcodeArInfoAnnotationWidthPreset和BarcodeArInfoAnnotationAnchor。
意图路由
根据用户的请求,在作答前加载相应的参考文件:
- 从头集成 BarcodeAr(例如“将 MatrixScan AR 添加到我的应用”“设置条码 AR 扫描”“如何在 Android 中使用 BarcodeAr”“如何为追踪的条码显示高亮”“如何显示信息注释”)→ 阅读 references/integration.md 并遵循其中的说明。
API 使用政策
仅使用下方 Scandit 参考资料中明确记载的 API。不要臆造或猜测方法签名、参数或属性名称。如果不确定某个 API 是否存在或应如何调用,或者遇到编译错误,请先获取相关参考页面,再作答。不要让用户自行查阅文档。回答后,始终附上相关链接,方便用户进一步了解。
切勿构造或猜测文档 URL。 需要查找特定类或属性的 API 页面时:
- 先检查已获取的页面中是否有指向该页面的直接链接——主题页面会直接链接到相关 API 符号。获取内容时,务必同时请求链接。
- 如果没有找到直接链接,请获取 API 索引(见下表中的完整 API 参考),从中提取实际链接并访问。
URL 结构可能有所不同(例如 api/ui/ 子目录),猜测会导致 404 错误。
许可证密钥
扫描需要 Scandit 许可证密钥。此技能的许可证产品为 native,许可证平台为 android。
请按以下顺序操作——切勿让用户等待 MCP:
-
Scandit MCP 服务已连接——调用
ensure_scanner_setup,指定产品native、平台android、app_identifier(应用的 bundle ID 或 application ID;对于 Web,应填写生产域名,绝不能填写localhost)以及环境变量SCANDIT_LICENSE_KEY。不要运行它返回的命令。然后使用该结果或list_license_keys中的密钥 ID 调用get_license_key;如果list_license_keys显示该密钥不是试用密钥,则先征求用户同意再获取。聊天中最多只显示遮蔽后的预览,绝不能打印完整密钥。 -
未连接——只需告知用户一次:他们可以在 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 返回的密钥,或用户粘贴或提供的密钥,替换许可证密钥调用中的占位符——在聊天中仍只显示遮蔽后的预览。不要在项目、文件或环境中搜索密钥。
参考资料
根据用户的问题,引导他们查看合适的资源:
| 主题 | 资源 |
|---|---|
| 入门 | 开始使用 · 示例 |
| 高级主题(自定义高亮、注释、点击交互、通知、筛选器) | 高级配置 |
| 完整 API 参考 | BarcodeAr API |