ADB over TCP/IP 在没有连接 USB 电缆的情况下无法工作
Posted
技术标签:
【中文标题】ADB over TCP/IP 在没有连接 USB 电缆的情况下无法工作【英文标题】:ADB over TCP/IP not working without USB cable connected 【发布时间】:2020-07-02 14:18:22 【问题描述】:我可以使用 USB 数据线通过 ADB 连接到我的智能手机, 我还可以通过 tcp/ip 连接到同一部智能手机 adb 连接 192.168.1.110 而 USB 电缆仍然连接。
但是,一旦我断开电缆,我就失去了 tcp/ip 连接,设备似乎“离线”(由于“adb devices”命令)并且我无法通过网络重新连接,直到我重新连接电缆。
我的步骤是(这样工作的):
-
连接 USB 数据线
adb kill-server
adb tcpip 5555
adb connect 192.168.1.110(这里连接成功!)
断开 USB 电缆 => 我与智能手机的网络连接断开
如果在第 3 步之后我断开电缆,第 4 步不起作用(端口 5555 已关闭)
似乎 adbd 守护程序仅在连接电缆时才运行。
由于我的设备没有植根,我没有找到任何方法来强制 adbd 守护程序在不连接 USB 电缆的情况下启动。
有什么想法吗?
[更新] 我刚刚尝试扫描智能手机以查找打开的 tcp 端口,但我一运行命令就发现: 亚行 tcpip 5555 扫描发现5555端口打开 但是一旦我断开 USB 电缆,我再次运行扫描,发现端口 5555 已关闭 这证实了一旦我断开 USB 电缆不知道为什么但 adb 在端口 5555 上停止响应或守护进程本身被杀死或类似情况
[更新] 我刚刚在另一台 android 设备(华硕平板电脑)上执行了相同的步骤,它运行良好,当我断开电缆时,tcp 端口保持打开状态,所以问题不在于我正在遵循的步骤,而是其他的问题
[更新] 我发现其他有类似问题的帖子,这是其中之一: adb connection by wifi getting killed when a new USB attached/detached ,不幸的是我不能按照他说的做,因为我的智能手机没有植根,我也处于与 Osama 在那篇帖子中发表评论相同的情况
【问题讨论】:
尝试连接usb并运行adb kill-server
然后adb tcpip 4455
更改端口不会改变结果,我看到 tcp 端口打开,我断开电缆,端口关闭
【参考方案1】:
下面的命令让你总是得到 5555 作为默认端口号,试试这个
确保您已将 wifi 配置为“自动连接”,同时在开发人员手册下设置始终允许来自网络的 adb
adb root
adb remount
adb shell setprop persist.service.adb.enable 1
adb shell setprop persist.adb.tcp.port 5555
adb reboot
【讨论】:
【参考方案2】:你好,我可以解决问题
首先用电缆连接你的设备(USB调试)如果它询问调试,点击手机上的允许
现在打开 cmd
输入 cd 'scrcpy 的位置'
键入以下内容
adb tcpip 5555
如果它再次要求您执行 adb tcpip 5555 再次执行此操作
adb connect
通过拔下电缆断开设备
scrcpy -s
完成!问题解决了
【讨论】:
【参考方案3】:首先连接您的设备并检查它是否已连接 运行
adb devices
那么 运行
adb tcpip 5555
现在断开您的设备 USB 数据线并转到设置并找出您手机的 IP 地址并运行 adb 连接 your_phone_ip_address
eg. adb connect 192.168.1.102
换成你自己的ip,用adb devices检查是否连接 如果它不起作用,那么问题一定是其他问题
【讨论】:
谢谢,正如我在第一次 [更新] 中所写,当我运行“adb tcpip 5555”时,如果我扫描智能手机的 tcp 端口,我发现端口 5555 已打开,但一旦我断开电缆端口结果关闭。所以任何连接它的尝试都会失败。【参考方案4】:您可能没有运行 ADB 服务器。
连接 USB 数据线后,
做:adb kill-server && adb start-server && adb tcpip 5555 && adb connect 192.168.1.110
连接成功后,即可断开连接线。
注意:在运行 adb devices
时,设备名称现在的格式为 IP:PORT,而不是最初的字母数字字符串。
【讨论】:
不幸的是,情况并非如此,我没有多个 adb,我只在没有安装其他任何东西的机器上使用平台工具,我已经尝试过你的建议,但它没有如果我在“adb connect”命令之前拔下电缆,则连接,如果我将电缆插入,它会连接......但是一旦我断开电缆,我就会松开 tcp/ip 连接 我已经尝试过了,得到了和你一样的行为。但是,我找到了解决它的方法。更新我的答案以反映我是如何解决它的。 我也更新了我的问题,因为它有点困惑,现在你可以看到我正在遵循的步骤,并且它们有效,所以我的问题不是 adb 服务器没有运行,问题是当我断开电缆时,似乎 adb 守护程序(智能手机上的守护程序,而不是 PC 上的服务器)被杀死或端口 5555 关闭 请复制粘贴我更新的解决方案。有用。久经考验。 Taaka,我相信你,如果我用我的华硕平板电脑运行它,它也可以在这里工作,但它不适用于我的 Honor 智能手机,你无法测试它,因为你没有同一台设备【参考方案5】:我也在荣耀手机上进行测试。我找到了解决这个问题的方法。您可以尝试开启Allow ADB debugging in charge only mode
,关闭Always prompt when connecting to USB
。它应该可以解决问题。
这是解决方案的reference。
【讨论】:
以上是关于ADB over TCP/IP 在没有连接 USB 电缆的情况下无法工作的主要内容,如果未能解决你的问题,请参考以下文章
循环使用 USB 电缆时,Android ADB-over-WiFi 仍会断开连接(?!?)