adb over Wi-Fi (Android 11+) on Windows:如何保持固定端口或自动连接?

Séb*_*ien 7 android adb adbwireless android-studio

无线连接亚行的工作我的Android手机11 + Windows工作站上的罚款。

但这并不方便,因为每次手机 Wifi 断开/重新连接时,我都必须:

  1. 在 Android 设置中打开无线调试。
  2. 记下端口号 XXXXX,它每次都在变化!
  3. adb connect 192.168.1.10:XXXXX在电脑上运行。

有没有办法跳过第 2 步:

  • 使端口固定?
  • 让 Windows 自动检测新端口上的电话?(文档似乎暗示在 MacOS 上不需要第 2 步和第 3 步,一旦配对完成,我想知道这是如何工作的)

Edw*_*way 20

您可以通过以下方式修复端口直到重新启动adb tcpip

与动态端口配对并连接后

尝试adb tcpip 5555

然后你可以使用 adb connect ip:5555直到重新启动(重新启动后你必须连接动态端口并再次将 tcpip 设置为 5555)

编辑:每当我重新启动手机时我都会运行此命令

adbw() {
    adb connect $IP:$1
    adb tcpip 5555
    adb disconnect
    adb connect $IP:5555
}
Run Code Online (Sandbox Code Playgroud)


Bui*_*d3r 17

您可以动态获取使用的端口nmap并连接到它。

这是我的解决方案

adb connect <device_ip>:$(nmap $IP -p 37000-44000 | awk "/\/tcp/" | cut -d/ -f1)

仅扫描端口 37000-44000 就足够了,还应启用无线调试,并且在 nmap 扫描期间需要解锁设备。如果 nmap 第一次没有找到端口,请再次运行它。

我已将命令添加到别名中,因此可以轻松运行
ex:
alias adbw='adb connect 192.168.0.7:$(nmap $IP -p 37000-44000 | awk "/\/tcp/" | cut -d/ -f1)'

下次连接:

  1. 解锁设备
  2. 启用无线调试(可以将其添加到状态栏图标)
  3. 如果设置了别名则运行adbw

防爆输出:
connected to 192.168.0.7:38395


aos*_*nin 9

Android 通过 mDNS/DNS-SD 广播连接详细信息,服务类型为._adb-tls-connect._tcp.

您可以使用 avahi-browse 等工具发现启用了无线 adb 的 Android 设备。

$ avahi-browse --terminate --resolve _adb-tls-connect._tcp
+    br0 IPv6 adb-26df62cd-sGvUmf                           _adb-tls-connect._tcp local
+    br0 IPv4 adb-26df62cd-sGvUmf                           _adb-tls-connect._tcp local
+ enp5s0 IPv6 adb-26df62cd-sGvUmf                           _adb-tls-connect._tcp local
=    br0 IPv6 adb-26df62cd-sGvUmf                           _adb-tls-connect._tcp local
   hostname = [Android.local]
   address = [10.0.0.199]
   port = [37531]
   txt = ["v=ADB_SECURE_SERVICE_VERSION"]
=    br0 IPv4 adb-26df62cd-sGvUmf                           _adb-tls-connect._tcp local
   hostname = [Android.local]
   address = [10.0.0.199]
   port = [37531]
   txt = ["v=ADB_SECURE_SERVICE_VERSION"]
= enp5s0 IPv6 adb-26df62cd-sGvUmf                           _adb-tls-connect._tcp local
   hostname = [Android.local]
   address = [10.0.0.199]
   port = [37531]
   txt = ["v=ADB_SECURE_SERVICE_VERSION"]
Run Code Online (Sandbox Code Playgroud)

然后您可以使用服务名称进行连接。

$ adb connect adb-26df62cd-sGvUmf
connected to adb-26df62cd-sGvUmf._adb-tls-connect._tcp
Run Code Online (Sandbox Code Playgroud)

或者使用地址和端口。

$ adb connect 10.0.0.199:37531
connected to 10.0.0.199:37531
Run Code Online (Sandbox Code Playgroud)


Séb*_*ien 1

由于 Android Studio 最近的更新,该问题现已解决。

\n

所有步骤现在都可以自动化:

\n
    \n
  1. 在 Android 设置中打开无线调试。\n\xe2\x86\x92 这可以通过简单的Tasker配置文件自动完成:当连接到办公室 WiFi 时,设置自定义设置以启用无线调试,如下所示:
  2. \n
\n

任务执行者简介

\n

任务者任务

\n

或者,如果您不需要完全自动化,您可以添加一个快速开关以方便起见。在 Pixel 3 上,可以在以下位置完成Settings > System > Developer options > Quick settings developer tiles > Wireless debugging

\n
    \n
  1. Android Studio Bumblebee 2021.1.1 现在会自动(几秒钟后)检测设备并连接到它!\n不再复制端口号。
  2. \n
\n