循环使用 USB 电缆时,Android ADB-over-WiFi 仍会断开连接(?!?)
Posted
技术标签:
【中文标题】循环使用 USB 电缆时,Android ADB-over-WiFi 仍会断开连接(?!?)【英文标题】:Android ADB-over-WiFi still disconnects when USB cable is cycled (?!?) 【发布时间】:2014-01-07 05:23:48 【问题描述】:我正在开发一个基于 USB 的项目,因此我使用 ADB over WiFi TCP/IP。完美运行,坦率地说,这种通过无线连接进行调试的能力是我多年来使用过的最酷的开发技巧之一。真的,真的很酷。
我正在研究与 USB 连接和断开连接相关的各种 Intent。我发现只要 USB 电缆的物理状态发生变化——无论是插入还是拔出——ADB 无线连接都会丢失。我可以通过 DDMS 重新建立它并恢复调试,但是到那时,大量的 CPU 时间已经过去了。这使得调试 USB 连接事件基本上是不可能的。
我不明白为什么 ADB 在通过 TCP/IP(通过 WiFi,不少于)连接时仍会对 USB 事件采取行动。是否有我缺少的 ADB 配置详细信息?你如何告诉 ADB 忽略 USB,因为它不是通过 USB 运行的?
谢谢!
【问题讨论】:
如果您更改 USB 配置的某些内容,没有合理的理由应该杀死 adb。所以我猜你可能无法改变它,因为它不是故意的。在 USB 处理代码中可能有一个硬编码的“kill adb”(因为这通常是正确的做法),或者甚至可能存在硬件限制,例如WiFi 可能是一个内部 USB 设备,对 USB 的任何更改都会导致 WiFi 中的某种事件导致 adb 死亡。原因是多方面的,不幸的是,您可以选择防止这种情况发生。 同意这听起来有问题。当您说可以恢复调试时,您的意思是您可以通过 WiFi 发出 adb reconnect,还是必须使用 ADB-over-USB 重新启用 ADB-over-wifi? “恢复调试”是指我可以 1) adb connect 192.168.xy,2) 切换到 Eclipse 中的 DDMS 视图并突出显示设备上的进程,以及 3) 单击小“bug”符号将调试器与进程重新关联。所有这些都发生在 WiFi 上。换句话说,该进程一直在运行,我可以重新关联并继续调试它。当我连接或分离电缆时,我只是失去了 ADB 关联,这使得设置断点和调试与 USB 连接和分离相关的代码变得非常困难! grrrrr 我观察到同样的事情,我第一次进入 android 时看到了这种狡猾的行为!可能因 Android 版本而异。 【参考方案1】:我遇到了同样的问题,我认为通过“撤销 USB 调试授权”解决了它
然后我通过 USB 连接并允许我的电脑
然后以tcpip模式重启adb并连接到我的设备。
当我断开 USB 数据线时它仍然保持连接。
希望这会有所帮助。
【讨论】:
以上是关于循环使用 USB 电缆时,Android ADB-over-WiFi 仍会断开连接(?!?)的主要内容,如果未能解决你的问题,请参考以下文章
ADB over TCP/IP 在没有连接 USB 电缆的情况下无法工作
离线 Android 仅使用 USB 电缆连接到 PHP localhost