首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonoTouch WIFI SSID

MonoTouch WIFI SSID
EN

Stack Overflow用户
提问于 2011-12-29 18:06:36
回答 1查看 2.2K关注 0票数 6

有没有可能得到一个IPhone的连接WIFI SSID与单点触控?

我发现了一种检查Wi-Fi状态的可能性,但没有办法检查SSID。https://github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs所以有人知道一种方法吗?感谢您的评论

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-13 05:05:47

您可以像@Jason链接的示例代码一样执行此操作。但目前在MonoTouch的当前版本中还没有CaptiveNetwork的绑定(但它将包含在未来的测试版中)。

同时,您可以将以下代码复制粘贴到应用程序中以获取SSID。

代码语言:javascript
复制
    using System;
    using System.Runtime.InteropServices;
    using MonoTouch;
    using MonoTouch.CoreFoundation;
    using MonoTouch.Foundation;
    using MonoTouch.ObjCRuntime;

    [DllImport (Constants.SystemConfigurationLibrary)]
    extern static IntPtr CNCopyCurrentNetworkInfo (IntPtr interfaceName);

    static string GetSSID ()
    {
        IntPtr scl = Dlfcn.dlopen (Constants.SystemConfigurationLibrary, 0);
        try {
            using (NSString en0 = new NSString ("en0")) {
                using (NSDictionary dict = new NSDictionary (CNCopyCurrentNetworkInfo (en0.Handle))) {
                    using (NSString key = Dlfcn.GetStringConstant (scl, "kCNNetworkInfoKeySSID")) {
                        return dict [key].ToString ();
                    }
                }
            }
        }
        catch (EntryPointNotFoundException) {
            // this is not available when running on the simulator
            return String.Empty;
        }
        finally {
            Dlfcn.dlclose (scl);
        }
    }

更新:最新的MonoTouch 5.2+版本包括对CaptiveNetwork的支持。上面的代码简化为:

代码语言:javascript
复制
using MonoTouch.SystemConfiguration;

static string GetSSID ()
{
    var dict = CaptiveNetwork.CopyCurrentNetworkInfo ("en0");
    return dict [CaptiveNetwork.NetworkInfoKeySSID].ToString ();
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8666397

复制
相关文章

相似问题

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