使用Xamarin表单的可用wifi连接列表

时间:2018-10-21 21:33:54

标签: xamarin xamarin.forms

我正在寻找一个示例,以列出所有使用Xamarin Forms可用的wifi连接。

我发现的所有示例都是检查当前连接是打开还是关闭。但我想列出所有可用的连接并获取有关它们的所有信息。

我不确定这个插件“ Plugin.Connectivity”是否能帮到我,但距离目标越近。

1 个答案:

答案 0 :(得分:-1)

不幸的是,Connectivity(现在是Xamarin.Essentials的一部分)插件对此无济于事。它仅允许您查看是否有连接,并告诉您有关该连接的信息。

据我所知,没有用于此的库,您将必须为此编写自定义代码。我不确定您要定位的平台,我将假设使用iOS和Android。

对于iOS,您可能希望查看NEHotspotHelper并列出SupportedNetworkInterfaces属性。并执行以下操作:

foreach (var network in NEHotspotHelper.SupportedNetworkInterfaces)
    Console.WriteLine(network.Ssid);

别忘了在Entitlements.plist中启用NetworkExtensions权利

对于Android,代码可能看起来像这样:

WlanClient client = new WlanClient();
foreach ( WlanClient.WlanInterface wlanIface in client.Interfaces )
{
    // Lists all networks
    Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList( 0 );
    foreach ( Wlan.WlanAvailableNetwork network in networks )
    {
        Console.WriteLine( "Found network with SSID {0}.", GetStringForSSID(network.dot11Ssid));
    }
}

在Android上,您需要额外的权限才能执行此操作。

要使其适合于Forms,请将其包装到DependencyService中并来回移动所需的信息。