没有通过TCP连接ADB的一致方法

我正在调试一个Android应用程序,当我插入一个它应该与之通信的Arduino时,它通常会崩溃。 因此,我需要与设备的logcat建立无线连接,这就是我在Android开发者网页上看到的通过TPC传播到ADB的原因 。

推荐的流程是:

C:\Users\User> cd AppData\Local\Android\sdk\platform-tools C:\Users\User\AppData\Local\Android\sdk\platform-tools> adb kill-server C:\Users\User\AppData\Local\Android\sdk\platform-tools> adb start-server * daemon not running; starting now at tcp:5037 * daemon started successfully C:\Users\User\AppData\Local\Android\sdk\platform-tools> adb tcpip 5555 restarting in TCP mode port: 5555 C:\Users\User\AppData\Local\Android\sdk\platform-tools> adb connect 10.20.5.160:5555 

但是,典型的反应是:

 unable to connect to 10.20.5.160:5555: cannot connect to 10.20.5.160:5555: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. (10060) 

我无法始终在PC和移动设备之间建立连接。 在使用多个网络和设备的三个星期的过程中,我只能连接两次痛苦的尝试。

我深入研究了stackoverflow上发布的问题,并尝试了每个推荐的更改以获得adb连接,从使用Android Studio插件到转发端口到尝试其他几个端口来切换我的设备的互联网。 我仍然无法获得超过一小部分时间的连接。

当我在adb tpip 之后adb tpip 设备的网络状态时,我发现没有设备试图寻找连接的证据:

 C:\Users\User\AppData\Local\Android\sdk\platform-tools> adb shell j3ltevzw:/ $ netstat -n Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 ::ffff:10.20.5.160:4214 ::ffff:173.194.196.188: ESTABLISHED udp 4288 0 adb shell ip -f inet addr show wlan0:68 10.20.5.1:67 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path ... ... ... ... ... ... ... ... ... ... ... ... 

此外,当我尝试ping我的设备时,我通常会得到:

 C:\Users\Benjamin\AppData\Local\Android\sdk\platform-tools> ping 10.20.5.160 Pinging 10.20.5.160 with 32 bytes of data: Reply from 10.20.5.232: Destination host unreachable. Reply from 10.20.5.232: Destination host unreachable. Reply from 10.20.5.232: Destination host unreachable. Reply from 10.20.5.232: Destination host unreachable. Ping statistics for 10.20.5.160: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss) 

我正在寻找的是一个可以运行并始终打开tcp adb连接的进程或文件,或至少解释我的设置无效。 想法?

更新1:

我已经开始对这个问题给予赏金。 我觉得用于调试连接的ADB软件有两个问题:

  1. adb tcpip 并不总是调用移动设备来侦听指定的端口

  2. adb connect : ,我假设,没有得到网络连接的许可; 我不是网络专家,但ping设备返回“目标主机无法访问”的事实似乎有点过时了

我会奖励第一个find成功解决方案的人。 看到具有ADB USB连接使用户能够访问移动设备和主机终端,确实没有理由不能在两者之间建立连接。

更新2:

我最近在连接亚行方面取得了更大的成功,并在我的学校网络上获得了成功的ping。 请注意,此网络连接是不安全的,主机和移动设备位于不同的子网上。 知道为什么这些条件会在我家只使用一个子网的安全网络上运行吗?

尝试从头开始并按照以下步骤设置ADB-over-tcp:

  1. 关闭设备上的USB调试并再次打开(仅重置)。
  2. 使用adb kill-server PC上的ADB adb kill-server
  3. 使用USB电缆将设备连接到PC,然后键入adb devices 。 这将再次自动重启ABD服务器。
  4. 在PC终端上输入adb tcpip 5555 。 这会将设备上的adbd守护程序切换到tcp-ip模式。
  5. 断开设备与USB的连接。 现在将您的设备连接到 PC 相同的无线网络 ,可以使用相同的Wi-Fi,也可以将手机用作热点
  6. 确定手机的IP。 您可以在手机上的Wi-Fi设置中执行此操作。 如果您使用手机作为热点,那么通常您的IP应该是192.168.43.1 (不是必需的,但大部分时间都是相同的)。
  7. 使用adb connect 通过tcp连接到ADB

这应该有希望通过tcp-ip将您的设备连接到您的电脑。

我find了一个适合我的解决方案,但我觉得它不应该是必要的,它可能不适用于其他所有这些问题,所以它仍然不是我的目标。

无论如何,在看到riyaz-ali建议通过手机使用移动热插拔的IP地址后,我意识到如果我是网络,任何网络复杂性都会解决,所以我将移动设备连接到我的移动热点笔记本电脑。

即时ping响应和与常用建议命令的即时ADB连接。