【问题标题】:Android Wear Enable ADB Connection Over WiFi TCP/IPAndroid Wear 通过 WiFi TCP/IP 启用 ADB 连接
【发布时间】:2015-07-24 14:22:15
【问题描述】:

我正在尝试开发适用于 Android Wear 的应用。为了在我的 Moto 360 手表(没有 USB 端口)上测试我的应用程序:

  1. 我通过 USB 将手机连接到计算机。

  2. 我在手机上打开了 Android Wear 配套应用并启用了“通过蓝牙进行调试”。

  3. 我在手表上打开了开发者选项并启用了“adb 调试”和“通过蓝牙进行调试”。

  4. 我在我的电脑上打开了一个终端并发出了命令

    (1) adb forward tcp:4444 localabstract:/adb-hub
    
    (2) adb connect localhost:4444
    
  5. 我点击了 Android Studio 中的“运行”按钮,并选择了我的 Moto 360 手表作为目标设备。

所有这些都奏效了,我可以在手表上看到我的应用正在运行。但是,使用上述方法通过蓝牙安装应用程序需要很长时间。有时一分钟,有时十分钟,它总是可变的。我正在测试的应用程序非常小:几个 xml 文件和 1 个 java 类,没有额外的资源。

我的问题是:有没有办法让我通过 WiFi 而不是蓝牙将我的 Android Wear 应用程序直接安装到我的 Moto 360 手表上?

在我电脑的终端中,我尝试使用以下命令:

(1) adb tcpip 5555

(2) adb connect 192.168.1.23:5555

但我得到了错误

unable to connect to :5555

然后我尝试使用 adb 在我的手表上打开一个 shell,启动 adb 服务器,然后连接到它:

(1) adb -s localhost:4444 shell

(2) adb start-server:5555

(3) exit

(4) adb connect 192.168.1.23:5555

但我仍然遇到同样的错误

unable to connect to :5555

所以我再次问,Android Wear 设备上是否有办法通过 WiFi TCP/IP 启用 ADB 连接,以便我可以通过 WiFi 而不是蓝牙安装我的应用程序?

【问题讨论】:

  • 当您通过蓝牙在智能手表上跑步时,请远离所有无线设备、收音机和电话。它们可能会造成干扰。
  • 不能完全解决您的问题,但如果您唯一的疑虑是 APK 的安装时间,您可以尝试使用 Wea​​r 模拟器进行逐行测试。完成错误修复或功能后,您可以安装到实际的 Wear 设备并在那里进行测试。同样,这并不能完全回答您的问题,但它可以简化您的开发过程。

标签: android adb wear-os android-wifi


【解决方案1】:

使用@Johnny 以及其他答案和@cgv 评论,这是我的“完整”指南:

佩戴时:

转到配置 -> 关于 -> 点击版本号 7 次(它将启用开发选项) 现在回到配置菜单 转到开发者选项 启用 adb(它还将启用选项 adb over bluetooth)

在手机上:

打开安卓穿戴应用 点击齿轮图标 Enable Debug over wifi -> 检查主机是否已连接(它是 android wear)

现在打开 cmd(您需要在路径变量中添加 adb):

adb forward tcp:4444 localabstract:/adb-hub adb connect localhost:4444 // 如果出现错误,请尝试将 localhost 替换为 127.0.0.1 adb -s localhost:4444 tcpip 5555 // 如果这给出错误尝试用 127.0.0.1 替换 localhost

在手机上:

通过蓝牙禁用 adb 禁用蓝牙

佩戴时:

转到配置 -> 开发人员选项 -> 禁用选项自动更改 wifi 状态 转到wifi,连接到您的wifi 仍然在wifi上,有一个高级选项,在那里你可以得到你的IP地址

在 cmd 上:

adb connect 192.168.1.3:5555 // 将 192.168.1.3 替换为你的 android wear ip

如果有人想制作脚本或贡献,我已经创建了xda forum thread

【讨论】:

    【解决方案2】:

    请注意,他们在 2021 年的某个时候从 Wear OS 中删除了“通过蓝牙进行调试”选项。从 APK Mirror 降级到旧版本应该会恢复该功能。

    【讨论】:

      【解决方案3】:

      这些步骤我都试过了。这是有效的。
      首先,您需要通过蓝牙连接 Moto 360 的 adb。
      在您的穿戴设备上打开ADB debuggingDebug over bluetooth 选项,并在您的手机上打开Debugging over bluetooth 选项。
      (如果您没有Developer options 菜单,请在About > Build number 上点击它的服务次数)

      输入命令通过蓝牙连接adb:

      adb forward tcp:4444 localabstract:/adb-hub
      adb connect localhost:4444
      

      接下来,连接 Wifi 网络并输入这些命令。

      adb -s localhost:4444 tcpip 5555
      

      它会打开wifi adb

      最后一步,通过 Wifi 连接。

      adb connect 192.168.1.3:5555
      

      玩得开心!

      【讨论】:

      • 唯一的问题是,如果 Android Wear 与手机有蓝牙连接,它会关闭 wifi。仅当我在adb -s localhost:4444 tcpip 5555 之后关闭手机蓝牙时,您的步骤才对我有用。佩戴的唯一 wifi 设置是关闭或自动,除非您知道如何让手表上的 wifi 保持活跃?
      • 你好 cgv,我想你必须在输入命令之前检查 wifi 连接after adb -s localhost:4444 tcpip 5555
      • 我不太确定,因为我没有找到任何有关它的信息。但是“开发者选项”下有一个选项说“允许自动wifi状态更改”,我猜这个选项会阻止wifi关闭。
      • 另一个提示:有时 localhost 不起作用,请尝试将其替换为 127.0.0.1
      • 对我来说 127.0.0.1 不起作用。必须尝试本地主机。 127.0.0.1 和 localhost 到底有什么区别?
      【解决方案4】:
      adb forward tcp:4444 localabstract:/adb-hub
      
      adb connect 127.0.0.1:4444
      

      【讨论】:

        【解决方案5】:

        是的,您可以制作一根 USB 电缆,在 youtube 上为它制作一个教程,乐队下方有一个 5 针连接器,因此您还需要移除乐队

        【讨论】: