You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mirror框架下安卓端显示游戏连接IP及跨安卓连接问题排查

问题分析与解决方案

核心问题

你的代码通过Dns.GetHostEntry(Dns.GetHostName())获取本地IP,但安卓设备通常存在多个网络接口(如WiFi、移动数据、虚拟VPN接口等),这段代码会返回第一个匹配的IPv4地址,大概率不是WiFi网络的IP,导致其他安卓设备无法通过该IP连接到安卓主机。

修复方案

替换原有的GetLocalIPAddress方法,改为专门获取WiFi接口的IPv4地址:

using System.Net.NetworkInformation;
using System.Net.Sockets;

string GetWiFiLocalIPAddress()
{
    foreach (var networkInterface in NetworkInterface.GetAllNetworkInterfaces())
    {
        // 筛选出启用状态的WiFi接口
        if (networkInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && 
            networkInterface.OperationalStatus == OperationalStatus.Up)
        {
            foreach (var unicastAddress in networkInterface.GetIPProperties().UnicastAddresses)
            {
                // 返回非回环的IPv4地址
                if (unicastAddress.Address.AddressFamily == AddressFamily.InterNetwork &&
                    !IPAddress.IsLoopback(unicastAddress.Address))
                {
                    return unicastAddress.Address.ToString();
                }
            }
        }
    }
    throw new Exception("No active WiFi network adapter with an IPv4 address found!");
}

额外注意事项

  • 安卓平台需添加权限:在AndroidManifest.xml中确保包含<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />和<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  • 确认两台安卓设备处于同一WiFi网络,且路由器未开启设备隔离功能

内容的提问来源于stack exchange,提问作者Pedro _F.M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:22:41