Bạn có thể làm điều này giống như mã mẫu mà @Jason liên kết đến. Nhưng hiện tại không có sự ràng buộc nào cho CaptiveNetwork trong các phiên bản hiện tại của MonoTouch (nhưng nó sẽ được đưa vào bản phát hành beta trong tương lai).
Trong thời gian chờ đợi, bạn có thể sao chép-dán mã sau vào trong ứng dụng của mình để nhận SSID.
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);
}
}
CẬP NHẬT: Mới nhất MonoTouch 5.2+ phiên bản bao gồm hỗ trợ cho CaptiveNetwork
. Mã trên được đơn giản hóa thành:
using MonoTouch.SystemConfiguration;
static string GetSSID()
{
var dict = CaptiveNetwork.CopyCurrentNetworkInfo ("en0");
return dict [CaptiveNetwork.NetworkInfoKeySSID].ToString();
}
Đây là [ví dụ sử dụng Obj-C] [1]. Bạn sẽ có thể sử dụng một cách tiếp cận tương tự trong MT. [1]: http://stackoverflow.com/questions/5198716/iphone-get-ssid-without-private-library – Jason