ADB 配对成功后,设备为空

原因

adb 依靠 mDNS 来发现并自动连接到已配对的设备。如果您的网络或设备配置不支持 mDNS 或已禁用它,则需要使用 adb connect ip:port 手动连接到设备。

自动连接

  • 如果你的设备 mDNS 正常工作,但是无法自动连接到 Android 的 WiFi adb,那么你可以使用 脚本 来解决这个问题。
  • 如果你的设备 mDNS 未正常工作,那么你需要 下一节 来设置 mDNS。

设置 mDNS

原文

激活 mDNS

首先,检查一下你手里的计算机是否激活了 mDNS 的解析器和响应器。

1
systemd-resolve --status

如果你在「Current Scopes」中看到了 mDNS/IPv4 和 mDNS/IPv6,那你就可以直接跳过这一步了。
否则,你需要在 /etc/systemd/resolved.conf.d/ 目录下新建一个文件 enable-mdns.conf:

1
2
3
# /etc/systemd/resolved.conf.d/enable-mdns.conf
[Resolve]
MulticastDNS=yes

连接到网络

接着我们需要将 mDNS 解析器和响应器连接到网络。

如果你使用 NetworkManager

如果你使用的是 NetworkManager,你需要在 /etc/NetworkManager/conf.d/ 目录下新建文件 connect-mdns.conf:

1
2
3
# /etc/NetworkManager/conf.d/connect-mdns.conf
[connection]
connection.mdns=2

如果你使用 systemd-networkd

如果你使用的是 systemd-networkd,你需要在 /etc/systemd/network/ 目录下新建文件 connect-mdns.conf:

1
2
3
# /etc/systemd/network/connect-mdns.conf
[Link]
Multicast=yes

然后重启。不出意外的话,mDNS 就配置好了!