首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在IOS 12-Xamarin上获取连接WIFI的SSID (更新为iOS 13)

在IOS 12-Xamarin上获取连接WIFI的SSID (更新为iOS 13)
EN

Stack Overflow用户
提问于 2018-09-27 14:38:00
回答 1查看 5K关注 0票数 1

我可以将连接的wifi的ssid发送到我的iPhone。安装Xcode 10并更新和VisualStudio2017之后,它将返回一个空的ssid。

这是我获得ssid的代码:

代码语言:javascript
复制
        public override string GetCurrentWiFi()
    {
        String ssid = "";
        try
        {
            string[] supportedInterfaces;
            StatusCode status;
            if ((status = CaptiveNetwork.TryGetSupportedInterfaces(out supportedInterfaces)) != StatusCode.OK)
            {

            }
            else
            {
                foreach (var item in supportedInterfaces)
                {
                    NSDictionary info;
                    status = CaptiveNetwork.TryCopyCurrentNetworkInfo(item, out info);
                    if (status != StatusCode.OK)
                    {
                        continue;
                    }
                    ssid = info[CaptiveNetwork.NetworkInfoKeySSID].ToString();
                }
            }
        }
        catch
        {

        }
        return ssid;
    }

我试图为WiFi 12应用程序添加“访问iOS信息”的权限,正如这里提到的那样,但是应用程序仍然得到一个空的ssid:https://forums.xamarin.com/discussion/139476/adding-access-wifi-information-entitlement-for-ios-12-apps

如果有人能帮忙我会很感激的。

解决了:我为我的applied应用了访问WIFI信息,然后重新生成我的配置文件并在我的Xcode中打开它。不要忘记在ios包签名的自定义游戏中添加Entitlements.plist。现在它正常工作了。

更新为iOS 13:苹果宣布iOS 13,CNCopyCurrentNetworkInfo API将不再返回有效的will和BSSID信息。

如果您的应用程序需要有效的Wi和BSSID信息才能正常工作,您可以执行以下操作:·对于附件安装应用程序,请使用NEHotSpotConfiguration API,它现在可以选择传递应用程序希望连接到的SSID热点的前缀。·对于其他类型的应用程序,使用CoreLocation API请求用户同意访问位置信息。

因此,我以以下方式更新了上述解决方案:

  • 将此键添加到您的info.plist:NSLocationWhenInUseUsageDescription中,您的描述
  • 使用CoreLocation API请求用户同意访问位置信息。 GetLocationConsent() { var管理器=新CLLocationManager();manager.AuthorizationChanged += (发送方,args) => {Console.WriteLine(“授权改为:{0}",args.Status);};if (UIDevice.CurrentDevice.CheckSystemVersion(8,0)) manager.RequestWhenInUseAuthorization()};
  • 在调用“GetLocationConsent”之前调用CaptiveNetwork()函数。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-28 08:48:13

若要在iOS 12及更高版本中使用此函数,请为应用程序启用Access WiFi Information功能。

因此,您必须检查appid中的Access WiFi信息。

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

https://stackoverflow.com/questions/52539526

复制
相关文章

相似问题

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