开启与配对
Adb 引擎依赖系统自带的 无线调试。下面分「手机界面怎么开」和「脚本里怎么配对 / 重连」。
1. 手机界面设置
先开 Wi‑Fi
无线调试依赖系统的 Wireless Debugging 能力,多数机型要求先打开 Wi‑Fi(连上任意可用网络即可)。
注意:
- Wi‑Fi 关掉后,不少机型会自动关闭「无线调试」
- 仅开移动数据、不开 Wi‑Fi 时,无线调试入口常常是灰的或连不上
- 部分机型连自己开的热点也能用,以实际机型为准
打开开发者选项
- 打开 设置 → 关于手机。
- 连续点击 版本号 约 7 次,直到提示已处于开发者模式。
- 回到设置,进入 系统 → 开发者选项(部分品牌在「系统与更新 / 其它设置」里)。
也可在脚本里直接跳转:
Adb.openDeveloperOptions();打开无线调试
- 进入 开发者选项。
- 先打开 USB 调试(多数机型要求先开这个)。
- 打开 无线调试。
- 点进 无线调试 详情页,会看到 IP 地址与端口,以及 使用配对码配对设备(点进去有 6 位配对码)。
也可:
Adb.openWirelessDebuggingSettings();打不开专用页时,会回落到开发者选项。
自动配对时端口由引擎发现,不用手抄端口。只有改走 手动配对 时,才需要区分配对端口和连接端口。
2. 首次配对(自动配对)
打开「使用配对码配对设备」后,脚本里只填 6 位码,端口由引擎自动发现并完成连接。
6 位码用 App.notifyInput 在通知栏回复。它只发一条可输入通知,不会把本应用拉回前台,设置页上的配对弹窗可以留着。
操作顺序:
- Android 13 及以上先允许本应用发送通知。没有通知权限时
notifyInput抛出异常;系统里关掉本应用通知也会抛异常。 - 脚本发出可回复通知,并跳到无线调试。
- 在设置里点 使用配对码配对设备。
- 下拉通知,点 输入,回复 6 位码。点取消或划掉通知会得到空字符串。
- 回复完成前不要切回本应用,否则配对弹窗常被关掉,码立刻失效。
一次通知只有一个输入框。要连续问端口和配对码时,等上一次返回后再调用下一次。
if (!Adb.isSupported()) {
FloatDialogs.show("提示", "需要 Android 11 及以上");
System.exit();
}
let code = App.notifyInput(
"无线调试配对",
"点「输入」回复 6 位配对码。不要回到本应用。",
"6 位配对码",
function () {
Adb.openWirelessDebuggingSettings();
}
);
if (!code) {
System.exit();
}
let result = Adb.pairWithCode(String(code), 120000);
if (!result.ok) {
FloatDialogs.show("失败", result.error || "自动配对失败:请确认配对弹窗未关,或改试手动配对");
System.exit();
}
console.log(Adb.shell("id"));
FloatDialogs.show("成功", "Adb 已连接");第四个参数在通知发出之后、开始等待之前执行,用来跳到无线调试。也支持 App.notifyInput(title, content, hint, timeoutMs, afterPosted),timeoutMs 小于等于 0 表示一直等到回复或取消。
pairWithCode 也支持 Adb.pairWithCode("123456", 120000) 加长超时。别名:pairCode / easyPair。
若已开无障碍,也可用 UiSelector 在弹窗仍可见时读界面上的 6 位数字再调用 pairWithCode(手机 示例 → 接口 → Adb 无线调试 有按钮);读码时同样不要先关掉配对弹窗。
自动配对连不上时,再手填配对端口和连接端口:
→ 手动配对(日常不要一上来就用手填;手填时同样用通知栏回复,不要切回本应用)
3. 已经配对过之后
一般不用再输配对码。 密钥会留在 App 私有目录;系统里也会记住这对设备。
但仍需要:
- 无线调试开关是打开的(重启后很多机型要再开)。
- 再次
connect(进程起来后、断线后都要连)。
推荐日常启动逻辑。connectSaved 会自动扫描连接端口;仍失败才要 6 位码,pairWithCode 也会自动扫描。手填端口只在 手动配对。
function ensureAdb() {
if (!Adb.isSupported()) {
throw new Error("需要 Android 11+");
}
// 已连接直接成功;否则用历史端口,失败再自动扫描连接端口
let c = Adb.connectSaved();
if (c.ok) {
return true;
}
// 从未配对、撤销授权、清数据后才需要。只填 6 位码,端口自动扫描
let pairCode = App.notifyInput(
"无线调试配对",
"仍连不上才填。点「输入」回复 6 位配对码,不要回到本应用。",
"6 位配对码",
function () {
Adb.openWirelessDebuggingSettings();
}
);
if (!pairCode) {
throw new Error(c.error || "连接失败");
}
c = Adb.pairWithCode(String(pairCode));
if (!c.ok) {
throw new Error(c.error || "配对失败");
}
return true;
}
ensureAdb();
Adb.tap(500, 800);什么时候必须重新配对
- 用户在开发者选项里 撤销 USB 调试授权,或忘掉了该配对设备
- App 清数据 / 卸载重装,或调用了
Adb.clearIdentity()/Adb.rotateIdentity() - 换了 applicationId 或换签名导致私有目录密钥丢失(不是「唯一标识」字段配错,是密钥文件不在了)
端口变了不用手填,也不用重新配对:connectSaved 会自己扫描新的连接端口。只有扫描失败(还没配对、撤销授权或清数据)才要 6 位码。6 位码也扫不到端口时,再看手动配对。
4. 自检
console.log(Adb.status());
// supported / connected / host / port /
// adbEnabled / wirelessDebuggingEnabled / developerOptionsEnabled| 字段为 false 时 | 做什么 |
|---|---|
supported | 换 Android 11+ 设备 |
developerOptionsEnabled | 打开开发者选项 |
adbEnabled | 打开 USB 调试 |
wirelessDebuggingEnabled | 打开无线调试 |
connected | connectSaved;仍失败再用 pairWithCode。自动扫描不到才看手动配对 |
