Android Wear如何通过WiFi TCP/IP启用ADB连接

17

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

  1. 通过USB将我的手机连接到电脑上。

  2. 在我的手机上打开Android Wear伴侣应用程序并启用“通过蓝牙调试”功能。

  3. 在我的手表上打开开发者选项,并启用“adb调试”和“通过蓝牙调试”功能。

  4. 在电脑上打开终端并输入以下命令:

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


  7. 所有这些都有效,我能够在我的手表上看到我的应用程序正在运行。但是,使用以上方法通过蓝牙安装应用程序需要非常长的时间。有时需要一分钟,有时需要十分钟,它总是不稳定的。我正在测试的应用程序非常小:只有几个xml文件和一个没有其他资源的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 安装我的应用而不是蓝牙呢?


当您通过蓝牙在智能手表上运行时,请远离所有无线设备、收音机和手机。它们可能会产生干扰。 - user3290180
虽然这并不是解决您问题的答案,但如果您唯一的问题是安装APK的时间,您可以尝试使用Wear模拟器进行逐行测试。当您完成错误修复或功能添加后,可以将其安装到实际的Wear设备上进行测试。再次强调,这并不完全回答了您的问题,但它可以简化您的开发流程。 - Sean Beach
5个回答

7
这些步骤我已经尝试过并且有效。首先,您需要通过蓝牙连接Moto 360的adb。在您的手表上打开ADB调试蓝牙调试选项,在您的手机上打开蓝牙调试选项。
(如果您没有开发者选项菜单,请在关于>版本号中连续点击几次)

键入以下命令以通过蓝牙连接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

祝你玩得开心!


1
唯一的问题是,如果Android Wear与手机建立了蓝牙连接,则会关闭wifi。只有在我关闭手机蓝牙后执行adb -s localhost:4444 tcpip 5555,您提供的步骤才能正常运行。除非您知道如何保持手表上的wifi连接,否则wear的唯一wifi设置为关闭或自动。 - cgv
嗨cgv,我认为在输入命令 after adb -s localhost:4444 tcpip 5555 之前,您需要检查WiFi连接。 - Johnny
我不太确定,因为我没有找到任何相关信息。但是在“开发人员选项”下有一个选项叫做“允许自动WiFi状态更改”,我猜测这个选项可以防止WiFi关闭。 - Renato Probst
另一个提示:有时本地主机名无法工作,请尝试将其替换为127.0.0.1。 - Renato Probst
对我来说,127.0.0.1不起作用。得试试localhost。127.0.0.1和localhost之间到底有什么区别? - rohan-patel
127.0.0.1和localhost是相同的。 - Johnny

2
adb forward tcp:4444 localabstract:/adb-hub

adb connect 127.0.0.1:4444

1
使用@Johnny和其他答案以及@cgv的评论,这是我的“完整”指南:
关于佩戴: 进入配置->关于->点击版本号7次(它将启用开发者选项) 现在返回到配置菜单 进入开发者选项 启用adb(它还将启用蓝牙上的adb选项)
关于手机: 打开Android Wear应用程序 点击齿轮图标 启用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 //如果出现错误,请尝试将localhost替换为127.0.0.1
关于手机: 禁用蓝牙上的adb 禁用蓝牙
关于佩戴:
前往配置 -> 开发人员选项 -> 关闭自动更改 WiFi 状态选项 进入 WiFi,连接到您的 WiFi 仍在 WiFi 上,有一个高级选项,您可以在那里获取您的 IP 地址
在 cmd 上: adb connect 192.168.1.3:5555 // 将 192.168.1.3 替换为您的 Android Wear IP
如果有人想制作脚本或做出贡献,我已经创建了一个 xda论坛帖子

1

简要说明一下,他们在2021年的某个时候从Wear OS中删除了通过蓝牙调试的选项。从APK镜像降级到旧版本应该可以恢复该功能。


0

是的,你可以制作一个USB电缆,在YouTube上有一个教程,在手环下面有一个5针连接器,所以你还需要拆下手环。


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