更新记录
1.0.0(2026-06-27) 下载此版本
初次提交
平台兼容性
uni-app(5.14)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | √ | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
laoqianjunzi-otg
laoqianjunzi-otg 是一个面向 uni-app x 的 UTS 插件,聚焦 Android 设备调试与控制场景,统一提供本机 Shell、OTG ADB、Wi-Fi ADB、无线调试配对、设备交互与结果持久化能力。
适用场景
- 在 Android 设备上执行本机 Shell 命令
- 通过 OTG 线连接另一台 Android 设备并执行 ADB 命令
- 通过局域网、无线调试配对或服务发现连接 Wi-Fi ADB 设备
- 获取远端设备信息、分辨率、截图、文本输入等调试辅助能力
- 通过自身设备无线调试配对服务,完成当前设备的本机配对链路
平台实现状态
| 平台 | 状态 | 说明 |
|---|---|---|
| Android | 已实现 | 当前正式实现平台 |
| iOS | 未实现 | 调用会返回 9011002 |
| Harmony | 未实现 | 调用会返回 9011002 |
当前示例页 uni_modules/laoqianjunzi-otg/pages/index.uvue 按 Android 实机调试场景设计。
环境要求
uni-app x- HBuilderX 5.07+
- Android
minSdkVersion: 28 - 使用 OTG 时,当前设备需支持
USB Host - 使用 Wi-Fi ADB 服务发现、前台保活时,需具备局域网与通知相关权限
- 使用 Shizuku 时,目标设备需已安装并完成授权
Android 侧声明能力
插件已在 utssdk/app-android/AndroidManifest.xml 中声明以下关键能力:
android.hardware.usb.hostACCESS_NETWORK_STATEACCESS_WIFI_STATEINTERNETNEARBY_WIFI_DEVICESCHANGE_WIFI_MULTICAST_STATEPOST_NOTIFICATIONSFOREGROUND_SERVICEFOREGROUND_SERVICE_CONNECTED_DEVICE
如果你的业务只使用部分链路,可以先调用 getCoreCapabilities() 决定是否展示对应 UI,再按需触发更重的连接或调试流程。
安装与导入
将插件放入项目的 uni_modules 目录后,可以直接从插件根路径导入:
import {
getPluginInfo,
getCoreCapabilities,
listOtgDevices,
connectOtg,
runOtgCommand
} from '@/uni_modules/laoqianjunzi-otg'
不要直接从 utssdk/app-android/index.uts 这样的具体平台文件导入。
API 设计约定
1. 插件信息与能力矩阵
getPluginInfo():读取插件基础信息,返回pluginId、pluginVersion、platform、implementationgetCoreCapabilities():读取当前端可用能力矩阵,适合在页面初始化时决定展示哪些调试面板
2. 统一结果结构
插件大量使用以下结果结构:
LqjBooleanResult:ok+valueLqjStringResult:ok+valueLqjShellExecResult:ok、mode、command、stdout、stderr、exitCodeLqjOtgConnectionResult/LqjWifiConnectionResult:连接结果与状态说明
当调用失败时,通常会附带:
errCodeerrMsg
推荐业务写法:先判断 ok,再消费 value、stdout 或连接状态字段。
能力总览
基础信息与环境检测
| API | 说明 |
|---|---|
getPluginInfo() |
插件信息 |
getCoreCapabilities() |
核心能力矩阵 |
isUsbHostSupported() |
当前设备是否支持 USB Host |
isRootAvailable() |
当前设备 Root 能力是否可用 |
isShizukuAvailable() |
Shizuku 是否已安装且可用 |
hasShizukuPermission() |
是否已获得 Shizuku 权限 |
requestShizukuPermission() |
触发 Shizuku 授权 |
isWirelessDebuggingSupported() |
是否支持无线调试 |
isWifiLanConnected() |
是否连接到局域网 |
isNotificationPermissionGranted() |
通知权限是否已授予 |
本机 Shell 与流式输出
| API | 说明 |
|---|---|
execLocalShell(command, mode) |
执行本机命令,mode 支持 basic / root |
execShizukuShell(command) |
通过 Shizuku 执行本机命令 |
sanitizeAdbShellCommand(command) |
清洗待执行命令 |
startShellStream(command, mode) |
启动流式命令 |
readShellStreamOutput() |
读取流式输出 |
stopShellStream() |
停止流式命令 |
isShellStreamRunning() |
当前是否存在运行中的流式命令 |
OTG ADB
| API | 说明 |
|---|---|
listOtgDevices() |
扫描可见的 OTG 设备 |
requestOtgPermission(deviceId) |
请求指定 USB 设备授权 |
hasOtgPermission(deviceId) |
查询指定设备是否已授权 |
connectOtg(deviceId) |
连接 OTG ADB 设备 |
runOtgCommand(command) |
向当前 OTG 设备执行命令 |
disconnectOtg() |
断开 OTG 连接 |
Wi-Fi ADB
| API | 说明 |
|---|---|
connectWifiAdb(host, port) |
直接连接 Wi-Fi ADB |
pairWifiAdb(host, pairingPort, pairingCode) |
仅执行配对 |
pairAndConnectWifiAdb(host, pairingPort, pairingCode) |
配对完成后自动连接 |
disconnectWifiAdb() |
断开 Wi-Fi ADB |
runWifiAdbCommand(command) |
向当前 Wi-Fi ADB 设备执行命令 |
startWifiAdbDiscovery() |
开始发现无线调试服务 |
stopWifiAdbDiscovery() |
停止发现服务 |
isWifiAdbDiscoveryRunning() |
服务发现是否运行中 |
getWifiPairingServices() |
获取 pairing 服务列表 |
getWifiConnectServices() |
获取 connect 服务列表 |
buildWifiPairingQrText(sessionId, pairingCode) |
生成可用于二维码承载的文本 |
保存设备与快速重连
| API | 说明 |
|---|---|
saveWifiAdbDevice(host, port, deviceName, isOwnDevice, isPaired) |
保存设备记录 |
getSavedWifiAdbDevices() |
获取已保存设备 |
forgetSavedWifiAdbDevice(deviceId) |
删除已保存设备 |
reconnectSavedWifiAdbDevice(deviceId) |
按记录直接重连 |
自身设备无线调试配对
| API | 说明 |
|---|---|
openWirelessDebuggingSettings() |
打开系统无线调试设置页 |
startSelfWifiPairingService() |
启动自身设备配对服务 |
submitSelfWifiPairingCode(pairingCode) |
提交配对码 |
getSelfWifiPairingState() |
读取自身配对状态 |
stopSelfWifiPairingService() |
停止自身配对服务 |
已连接设备与远端交互
以下能力同时适用于当前已连接的 otg 或 wifi 设备:
| API | 说明 |
|---|---|
getConnectedDevices() |
获取当前缓存连接 |
getDeviceInfo(mode) |
读取设备信息 |
getResolution(mode) |
读取屏幕分辨率 |
sendText(text, mode) |
向目标设备输入文本 |
sendTap(x, y, mode) |
发送点击事件 |
sendKeyEvent(code, mode) |
发送按键事件 |
sendSwipeEvent(x1, y1, x2, y2, mode) |
发送滑动事件 |
screenshot(mode) |
触发截图并返回结果 |
getAppList(mode) |
获取应用列表 |
installApp(localPath, mode) |
安装应用 |
uninstallApp(packageName, mode) |
卸载应用 |
终端辅助与文件输出
| API | 说明 |
|---|---|
addCommandHistory(command) |
写入命令历史 |
getCommandHistory() |
读取命令历史 |
clearCommandHistory() |
清空命令历史 |
addBookmark(command) |
添加命令收藏 |
removeBookmark(command) |
删除命令收藏 |
getBookmarks() |
读取收藏 |
clearBookmarks() |
清空收藏 |
getCommandSuggestions(input, includePackages) |
获取命令建议 |
saveOutputText(fileName, content) |
保存文本输出 |
listSavedOutputFiles() |
读取已保存输出文件 |
openSavedOutputFile(path) |
打开已保存文件 |
shareSavedOutputFile(path) |
分享已保存文件 |
远端文件管理
| API | 说明 |
|---|---|
listRemoteFiles(path, mode) |
列出远端目录 |
makeRemoteDirectory(path, mode) |
创建远端目录 |
renameRemotePath(oldPath, newPath, mode) |
重命名远端路径 |
deleteRemotePath(path, mode) |
删除远端路径 |
copyRemotePath(sourcePath, destPath, move, mode) |
复制或移动远端路径 |
downloadRemoteFile(remotePath, localPath, mode) |
从远端拉取文件 |
uploadLocalFile(localPath, remotePath, mode) |
上传本地文件到远端 |
推荐调用顺序
本机命令
getCoreCapabilities()isRootAvailable()或isShizukuAvailable()sanitizeAdbShellCommand()execLocalShell()或execShizukuShell()
OTG 调试
isUsbHostSupported()listOtgDevices()requestOtgPermission(deviceId)connectOtg(deviceId)runOtgCommand()/getDeviceInfo('otg')/screenshot('otg')disconnectOtg()
Wi-Fi ADB 调试
如果你已经知道主机和端口:
connectWifiAdb(host, port)runWifiAdbCommand()saveWifiAdbDevice()disconnectWifiAdb()
如果你需要从无线调试流程进入:
isWirelessDebuggingSupported()startWifiAdbDiscovery()getWifiPairingServices()/getWifiConnectServices()pairWifiAdb()或pairAndConnectWifiAdb()runWifiAdbCommand()
示例
读取插件信息与能力矩阵
import { getPluginInfo, getCoreCapabilities } from '@/uni_modules/laoqianjunzi-otg'
const plugin = getPluginInfo()
const capabilities = getCoreCapabilities()
console.log(plugin)
console.log(capabilities)
OTG 调试最小链路
import {
listOtgDevices,
requestOtgPermission,
connectOtg,
runOtgCommand
} from '@/uni_modules/laoqianjunzi-otg'
const devices = listOtgDevices()
if (devices.length > 0) {
const deviceId = devices[0].deviceId
const permission = requestOtgPermission(deviceId)
if (permission.ok && permission.value) {
const connected = connectOtg(deviceId)
if (connected.ok && connected.connected) {
const shell = runOtgCommand('getprop ro.product.model')
console.log(shell.stdout)
}
}
}
Wi-Fi ADB 配对并连接
import { pairAndConnectWifiAdb, runWifiAdbCommand } from '@/uni_modules/laoqianjunzi-otg'
const connection = pairAndConnectWifiAdb('192.168.1.20', 37001, '123456')
if (connection.ok && connection.connected) {
const result = runWifiAdbCommand('getprop ro.serialno')
console.log(result.stdout)
}
错误码
| 错误码 | 含义 |
|---|---|
9011001 |
参数无效 |
9011002 |
当前平台不支持该能力 |
9011003 |
本机命令执行失败 |
9011004 |
Root 不可用或未授权 |
9011005 |
USB Manager 不可用 |
9011006 |
未发现可用的 ADB OTG 设备 |
9011007 |
OTG 设备尚未授权 |
9011008 |
OTG ADB 连接失败 |
9011009 |
OTG ADB 尚未连接 |
9011010 |
OTG 命令执行失败 |
9011011 |
WiFi ADB 连接失败 |
9011012 |
WiFi ADB 尚未连接 |
9011013 |
WiFi ADB 命令执行失败 |
9011014 |
Shizuku 不可用 |
9011015 |
Shizuku 权限未授予 |
9011016 |
Shizuku 命令执行失败 |
9011017 |
WiFi 前台服务启动失败 |
9011018 |
WiFi ADB 服务发现失败 |
9011019 |
WiFi ADB 配对后自动连接失败 |
示例页说明
本插件内置了一个面向 Android 的演示页:
- 路径:
uni_modules/laoqianjunzi-otg/pages/index.uvue - 目标:串起本机命令、OTG ADB、Wi-Fi ADB、自身设备配对四类典型流程
- 特点:只调用当前正式 API,不展示任何旧接口入口
如果你要在业务项目中接入,建议先跑通示例页,再把你真正需要的按钮和流程拆到业务页面中。

收藏人数:
https://gitee.com/laoqianjunzi/laoqianjunzi-otg
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 1158
赞赏 2
下载 12348224
赞赏 1925
赞赏
京公网安备:11010802035340号