ADB通过TCP/IP无法正常工作,必须使用USB连接线。

3
我可以使用USB电缆连接到我的智能手机并使用ADB,同时也可以通过tcp/ip连接到同一台智能手机,当USB电缆仍然连接时可以使用adb connect 192.168.1.110。但是,一旦我断开电缆,我失去了tcp/ip连接,设备看起来像是“离线”(因“adb devices”命令而得出的结果),并且在重新连接电缆之前无法通过网络重新连接。
我的步骤是(这样才能正常工作):
1. 连接USB电缆 2. adb kill-server 3. adb tcpip 5555 4. adb connect 192.168.1.110(此处成功连接!) 5. 断开USB电缆 => 我失去了与智能手机的网络连接
如果在第3步后我断开电缆,步骤4将无法执行(端口5555关闭)。
似乎只有当连接电缆时,adbd守护程序才会运行。
由于我的设备没有root权限,我找不到任何方法来强制adbd守护程序在未连接USB电缆的情况下启动。
有什么想法吗?
[更新] 我刚刚尝试了扫描智能手机打开的tcp端口,并发现一旦运行以下命令: adb tcpip 5555 扫描即可找到端口5555已打开 但是,一旦我断开USB电缆,再次运行扫描,就会发现端口5555已关闭 这证实了一旦我断开USB电缆,adb就不知道为什么停止在端口5555上响应或守护进程自身被杀死或类似的问题。
[更新] 我在另一台Android设备(一台华硕平板电脑)上执行了相同的步骤,它完美地工作。当我断开电缆时,tcp端口保持打开状态,因此问题不在于我遵循的步骤,而在于其他方面。
[更新] 我发现其他帖子也有类似的问题,其中之一是: adb connection by wifi getting killed when a new USB attached/detached ,不幸的是,由于我的智能手机没有root权限,并且我处于Osama在该帖子中的评论相同的情况下,无法执行他说的操作。

尝试通过USB连接并运行adb kill-server,然后运行adb tcpip 4455 - Gabriel
更改端口不会改变结果,我看到TCP端口打开,我拔掉电缆,端口关闭。 - Dado
5个回答

1

首先连接您的设备并检查是否已连接 运行

adb devices

然后 运行

adb tcpip 5555

现在请断开您设备的USB电缆,进入设置并查找手机的IP地址,并运行以下命令:
adb connect 您的手机IP地址

eg. adb connect 192.168.1.102

将其替换为您自己的IP地址,并使用adb devices检查它是否连接,如果未连接,则问题必须是其他原因导致的。


感谢,正如我在我的第一个[更新]中所写的那样,当我运行“adb tcpip 5555”时,如果我扫描智能手机的tcp端口,我发现端口5555已打开,但是一旦断开电缆,该端口就会关闭。因此,无论尝试连接它的任何尝试都将失败。 - Dado

1

你好,我可以解决问题。

首先,使用电缆连接您的设备(USB调试),如果手机要求进行调试,请点击允许。

现在打开命令提示符。

输入cd 'scrcpy位置'

然后输入以下内容:

adb tcpip 5555

如果再次要求执行adb tcpip 5555,请再次执行。

adb connect <'设备IP地址'>

通过拔出电缆断开设备的连接。

scrcpy -s <'设备IP地址'>

完成!问题已解决。


1
我也在荣耀手机上进行测试。我找到了解决此问题的方法。您可以尝试打开仅充电模式下允许ADB调试并关闭连接到USB时始终提示。这应该可以解决问题。
这是参考资料的链接。

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

0

您可能没有运行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连接。 - Dado
我已经尝试并得到了与您相同的结果。但是,我找到了一种解决方法。更新我的答案以反映我如何解决它。 - ByronTaaka
我也更新了我的问题,因为它有点混淆,现在你可以看到我正在遵循的步骤,它们有效,所以我的问题不是adb服务器没有运行,而是当我断开电缆时,似乎adb守护程序(在智能手机上的守护程序,而不是PC上的服务器)被关闭或端口5555被关闭。 - Dado
Taaka,我相信你,在我的华硕平板上运行它也可以,但在我的荣耀智能手机上无法运行,而你无法测试相同的内容,因为你没有相同的设备。 - Dado
Taaka,感谢您为此付出的时间,不幸的是,在这里您的技巧不起作用,无论我运行多少次命令,格式都是正确的,192.168.1.110:5555,问题在于一切都正常工作,但是,当我断开电缆时,它也从tcp中断开连接,无论我做什么。在我看来,智能手机上有些东西会杀死adb守护程序,解决方案(如果有的话)可能是更改手机本身的某些内容。 - Dado
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接