【问题标题】:adb wifi often go offline, how to keep adb online?adb wifi经常掉线,如何让adb保持在线?
【发布时间】:2016-07-29 06:25:40
【问题描述】:

我正在使用Android平板电脑通过USB端口与USB设备通信,平板电脑只有一个USB端口,所以我使用adb wifi作为我的调试工具。但是,当我通过WIFI连接adb时,连接不会保持很长时间(我们通常只有几分钟),如何保持adb wifi连接一直在线? 另一个问题,是否可以使用USB HUB将平板电脑与USB闪存驱动器和我的电脑连接,并保持adb运行? 非常感谢!!!

【问题讨论】:

标签: android usb wifi adb


【解决方案1】:

经过多次不成功的尝试,我注意到打开Allow ADB debugging in charge only mode规范,解决了这个问题。它使设备在线并可通过 wifi 访问 ADB。 您可以在开发者选项部分找到它。

【讨论】:

    【解决方案2】:

    这是我在各地研究和自己开发一个多星期后发现的。

    Q1。如果很长时间没有执行任何操作,adb 服务经常会崩溃。

    A1。不时调用 adb 命令使 adb 服务器保持在线。

    Q2。 wifi 连接的设备有时会断开连接。

    A2。在连接设备上检查 wifi 之前,请检查 ADB 服务器正在运行的 wifi。 Ping 到 google,如果连接良好,则 ping 到设备。
    无线可以自行断开连接,有时甚至会断开有线连接。所以当设备尚未连接时调用“adb connect ...”是必要的。您可以通过保存“adb devices > device.txt”并查询您预期的 wifi 是否在列表中来轻松完成此操作。如果没有,请重新连接..(在另一个线程中执行此操作)。

    Q3。 wifi 连接的设备有时会离线。

    A3。这是因为通过 TCP/IP 连接,您的 ADB 服务器现在处于 Time_Wait 状态。最后一个连接被中断,下一个连接现在离线,因为最后一个连接没有完全关闭。您可以手动断开/连接设备的 wifi 或通过 ex)“adb tcpip 5555”重新启动 TCPIP 连接 如果您想自动执行此操作,则必须以编程方式断开/连接设备的 wifi。

    有其他问题,我可以在 cmets 上回答。

    【讨论】:

    • 嘿,...如果我们断开连接并延迟再将其重新连接到循环中,它是否正常工作?
    【解决方案3】:

    当连接丢失并且adb devices显示设备离线时,如下所示:

    prompt> adb devices
    List of devices attached
    192.168.1.1:5555     offline
    

    然后adb disconnect IP 后跟adb connect IP 通常会起作用:

    prompt> adb disconnect 192.168.1.1
    disconnected 192.168.1.1
    prompt> adb devices
    List of devices attached
    prompt> adb connect 192.168.1.1
    connected to 192.168.1.1
    prompt> adb devices
    List of devices attached
    192.168.1.1:5555     device
    

    【讨论】:

      【解决方案4】:

      在没有任何第三方应用的情况下通过 wi-fi 使用 adb。按照步骤操作。

      1. 通过 USB 连接设备

      2. 打开您的终端并使用adb devices 命令检查您的设备

      3. 键入adb tcpip 5555 并输入(或使用其他端口而不是5555)

      4. 拔出 USB 数据线。你不再需要它了。

      5. 拿起你的安卓手机去设置/关于/状态

      6. 检查 IP 地址部分。假设您的 IP 地址是 192.168.x.y

      7. 在您的终端中,编写命令adb connect 192.168.x.y

      8. 现在,您已经通过 wi-fi 连接了您的设备。

      9. 你可以在adb devices看到你的设备

      10. 尽情享受吧! :)

      【讨论】:

      • 感谢您的回答!这是我以前做的。但是,我想完全摆脱 USB 电缆,我在平板电脑上安装了 WiFiAdb,其连接经常丢失。你知道原因吗?
      • 您所说的“完全摆脱 USB 电缆”是什么意思?完成这些步骤后,您何时使用电缆?
      • 什么意思是我没有通过第1步,而是使用Android WifiAdb.apk。
      • 我遇到了这种方法的问题,经过一段时间后,我不再能够连接。 (我正在使用直接在手机上连接到端口 5555 的 Play 商店应用程序)。发生这种情况时,我在现场远离任何可以连接并重新运行adb tcpip 5555 的设备,因此当我回到办公桌前时,我无法捕获 logcat 来调试发生的任何问题。如何防止这种情况发生?
      • 尝试adb kill-server 然后adb start-server。然后再次应用这些步骤。
      【解决方案5】:

      这似乎是您的 wifi 的问题。作为预防措施,只需保持终端打开,每当您需要测试时,只需按“向上箭头”键即可访问之前运行的 adb connect "<ip>" 命令。

      【讨论】:

      • 我的wifi发射器离我的平板很近,信号电平很高,但是,好像和问题无关,我要经常用"up",但是这个很尴尬。
      • 嗯..我仍然认为那是您的路由器的问题。它是否被很多设备共享?如果是,那么路由器可能会决定临时随机丢弃设备,在 adb 的情况下,这意味着完全断开连接。您可以构建一个小型测试应用程序来检查连接断开的次数以确定是否发生。
      【解决方案6】:

      我尝试了很多方法,但这个方法对我有用: 在循环中强制显示打开和关闭将使设备保持在线

      adb shell input keyevent 224
      timeout 2
      adb shell input keyevent 26
      timeout 58
      

      这会每分钟打开一次显示屏,持续 2 秒

      【讨论】:

      • 如何循环完成?
      • 在 Mac 上我用while :; do clear; adb shell input keyevent 224; sleep 2; done 尝试过。连接保持稳定的时间更长,但过一会儿又断开了:o/
      【解决方案7】:

      所以,我正在使用 Scrcpy 和 Adb 无线连接到我的手机(用于开发 Flutter 应用程序),因为即使通过 Scrcpy --stay-awake 命令,屏幕也不会保持唤醒状态。

      我不得不更改锁定设置 => 锁定屏幕 => 睡眠,并将设置更改为从不睡眠。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2016-04-05
        • 1970-01-01
        • 2015-03-31
        • 2020-08-21
        • 2014-09-20
        • 2012-04-19
        相关资源
        最近更新 更多