accbotTsSdk 文档站accbotTsSdk 文档站
  • 快速接入
  • 运行模式与权限
  • Tauri 桌面工具使用说明
  • Demo 与示例工程
  • 常见问题
  • SDK 模块概览
  • App 模块
  • Auth 模块
  • Acc 模块
  • File 模块
  • Input 模块
  • Shell 模块
  • OCR 模块
  • OpenCV 模块
  • 扩展能力
API 索引
常见问题
Source
  • 快速接入
  • 运行模式与权限
  • Tauri 桌面工具使用说明
  • Demo 与示例工程
  • 常见问题
  • SDK 模块概览
  • App 模块
  • Auth 模块
  • Acc 模块
  • File 模块
  • Input 模块
  • Shell 模块
  • OCR 模块
  • OpenCV 模块
  • 扩展能力
API 索引
常见问题
Source
  • SDK 模块

    • SDK 模块概览
    • App 模块
    • Auth 模块
    • Acc 模块
    • File 模块
    • Input 模块
    • Shell 模块
    • OCR 模块
    • OpenCV 模块
    • 扩展能力

OCR 模块

accbotTsSdk 同时暴露了 android.ocr 和 android.paddleOcr 两条 OCR 能力线,但它们都不是 Android 主程序默认注册的内建路由,而是插件能力。

这意味着:

  • tsSdk 层虽然能直接访问 android.ocr / android.paddleOcr
  • Android 主程序默认并没有 ocr / paddleocr 路由
  • 只有 android.app.loadPlugin(...) 成功后,插件路由才会被动态挂载

如果你只是看到 SDK 上有 android.ocr / android.paddleOcr 对象,不代表设备当前已经具备可返回 OCR 结果的底层能力。

插件部署方式

插件 zip 通过 tsSdk 文件 API 推送到设备,然后加载:

// 1. 推送插件 zip 到设备(不走 adb push)
await android.file.writeBase64(
  '/data/local/tmp/paddleocr-plugin.zip',
  base64Content,
)
// 2. 加载插件
await android.app.loadPlugin('/data/local/tmp/paddleocr-plugin.zip')
// 3. 确认已加载
const plugins = await android.app.listPlugins()

android.ocr

android.ocr 的用户入口来自 util 层封装,应按 全屏识别 / 区域识别 / Base64 图片识别 来理解,而不是直接按 autoCode 底层签名调用。

ocr(qua?)

全屏识别入口。

  • 参数:
    • qua?: number:识别阈值 / 相似度,默认 80
  • 返回值:Promise<OcrRes[]>
  • 说明:该方法等价于内部调用全屏坐标 (-1, -1, -1, -1) 的 OCR
const result = await android.ocr.ocr()
console.log(result)

ocrArea(qua, x1, y1, x2, y2)

识别屏幕指定区域的文本。

  • 参数:
    • qua: number:识别阈值 / 相似度,通常 1-100
    • x1: number
    • y1: number
    • x2: number
    • y2: number
  • 返回值:Promise<OcrRes[]>
const result = await android.ocr.ocrArea(80, 0, 0, 1080, 400)
console.log(result)

ocrBase64(imageBase64, qua)

识别 Base64 编码图片中的文本。

  • 参数:
    • imageBase64: string
    • qua: number
  • 返回值:Promise<OcrBase64Res[]>
  • 注意:用户入口的参数顺序是 ocrBase64(imageBase64, qua),不是 autoCode 的 ocrBase64(qua, imageBase64)

android.paddleOcr

android.paddleOcr 是另一条独立的插件能力线,当前对外暴露风格不是 util 层包装,而是直接沿用当前 autoCode 风格入口。

ocr(qua, x1?, y1?, x2?, y2?)

PaddleOCR 识别入口。

  • 返回值:Promise<PaddleOcrResponse>

ocrBase64(qua, imageBase64)

PaddleOCR 的 Base64 图片识别入口。

  • 注意:这里的参数顺序当前是 ocrBase64(qua, imageBase64),和 android.ocr.ocrBase64(imageBase64, qua) 不一样

语言相关方法

  • switchLang(lang)
  • currentLang()
  • listLangs()
  • addLang(lang, path)
  • removeLang(lang)

插件前置条件

  • android.ocr 背后对应 ocr-plugin(百度商业 OCR,已停用)
  • android.paddleOcr 背后对应 paddleocr-plugin(PaddleOCR 多语言 OCR,活跃)
  • 它们都不是 Android 主程序默认注册能力
  • 只有在 android.app.loadPlugin(...) 成功后,相关 OCR 路由才会动态出现

验证方式

插件 zip 需先通过 tsSdk 文件 API 推送到设备(android.file.writeBase64()),再调用 loadPlugin 加载。不走 adb push。

Node.js 侧验证请按 tsSdk 用户入口测试:

// PaddleOCR
await android.paddleOcr.switchLang('cyrillic')
const result = await android.paddleOcr.ocr(80)
console.log(result)

返回值说明

android.ocr 返回值

每个结果项包含:

  • label:识别文本
  • qua:置信度
  • x、y:文本区域左上角坐标
  • x2、y2:文本区域右下角坐标

android.paddleOcr 返回值

返回 PaddleOcrResponse:

  • results:识别结果数组,每项包含 text(文本)、confidence(置信度 0~1)、box(四点坐标数组)
  • timeMs:识别耗时(毫秒)

注意事项

  1. OCR 是插件能力,需要先 loadPlugin 再调用 OCR 方法
  2. 全屏识别结果可能较多,业务中建议缩小识别区域
  3. 如果只是定位界面元素,优先尝试 android.acc;如果控件文本无法直接从节点树获得,再考虑 OCR
  4. PaddleOCR 支持多语言切换(中文 ch、俄语 cyrillic),通过 switchLang(lang) 切换
  5. android.ocr.ocrBase64(imageBase64, qua) 和 android.paddleOcr.ocrBase64(qua, imageBase64) 参数顺序不同,注意区分
在 GitHub 上编辑此页
上次更新: 2026/3/30 13:08
贡献者: 胖鱼, Claude Opus 4.6
Prev
Shell 模块
Next
OpenCV 模块