首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查Xamarin iOS上是否有WIFI

检查Xamarin iOS上是否有WIFI
EN

Stack Overflow用户
提问于 2014-10-14 14:45:35
回答 3查看 6.7K关注 0票数 4

Detect if Network is Available中引入了Reachability类。InternetConnectionStatus()似乎没有做我想要的事情。我想检查WiFi是否可用,不管是否可以连接互联网。不知道是否是DNS服务器丢失或类似的原因。目前,似乎总是对互联网连接进行测试。LocalWifiConnectionStatus()更好吗?

如何仅检查用户是否已登录到WLAN连接?

EN

回答 3

Stack Overflow用户

发布于 2017-03-03 12:34:05

  1. 只需搜索插件xam.plugin.connectivity并安装,即可打开
  2. 包管理器

现在,将检查互联网的代码添加到您的类中,并使用Plugin.Connectivity;使用命名空间

代码语言:javascript
运行
复制
private bool CheckConnectivity()
    {
        var isConnected = CrossConnectivity.Current.IsConnected;
        return isConnected;
    }
票数 5
EN

Stack Overflow用户

发布于 2014-10-14 20:29:25

我不知道在我写这段代码后是否有API更新,但你可以尝试阅读SSID:

代码语言:javascript
运行
复制
    /// <summary>
    /// Gets the current SSID.
    /// </summary>
    /// <value>The current SSID.</value>
    public string CurrentSSID 
    {
        get
        {
            NSDictionary dict;
            var status = CaptiveNetwork.TryCopyCurrentNetworkInfo ("en0", out dict);
            if (status == StatusCode.NoKey)
            {
                return string.Empty;
            }

            var bssid = dict [CaptiveNetwork.NetworkInfoKeyBSSID];
            var ssid = dict [CaptiveNetwork.NetworkInfoKeySSID];
            var ssiddata = dict [CaptiveNetwork.NetworkInfoKeySSIDData];

            return ssid.ToString();
        }
    }

如果LocalWifiConnectionStatus更适合您的需要,您也可以尝试使用它。

https://github.com/XForms/Xamarin-Forms-Labs/blob/master/src/Xamarin.Forms.Labs/Xamarin.Forms.Labs.iOS/Services/Reachability.cs

代码语言:javascript
运行
复制
    /// <summary>
    /// The local WiFi connection status.
    /// </summary>
    /// <returns>
    /// The <see cref="NetworkStatus"/>.
    /// </returns>
    public static NetworkStatus LocalWifiConnectionStatus()
    {
        NetworkReachabilityFlags flags;
        return (!IsAdHocWiFiNetworkAvailable(out flags) || (flags & NetworkReachabilityFlags.IsDirect) == 0) ?
            NetworkStatus.NotReachable :
            NetworkStatus.ReachableViaWiFiNetwork;
    }
票数 1
EN

Stack Overflow用户

发布于 2016-12-07 06:01:38

我知道这是旧的,但我正在寻找同样的东西,并结合answers...Anybody有更好的建议或理由不这样做?

代码语言:javascript
运行
复制
public NetworkState GetNetworkState()
{
    object ssid = null;
    NSDictionary dict = null;

    var status = CaptiveNetwork.TryCopyCurrentNetworkInfo("en0", out dict);
    if (status == StatusCode.OK)
        ssid = dict[CaptiveNetwork.NetworkInfoKeySSID];

    using (SystemConfiguration.NetworkReachability r = new NetworkReachability("www.appleiphonecell.com"))
    {
        NetworkReachabilityFlags flags;

        if (r.TryGetFlags(out flags))
        {
            if ((flags & NetworkReachabilityFlags.Reachable) != 0)
            {
                if (ssid != null && !string.IsNullOrEmpty(ssid.ToString()))
                    return NetworkState.Wifi;
                else
                    return NetworkState.Carrier;//we are not connected to wifi, but we can reach the site...
            }
        }
    }

    return NetworkState.None;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26354265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档