2012-02-18 114 views
1

我需要檢查設備是否已正確連接到「My-Wifi」網絡。如果它連接,那麼我會發送一些數據到服務器,否則不會。如何在iOS編程中檢查網絡提供者名稱?

現在我只是使用Reachability類來檢查Internet連接。

那麼如何檢查?

+0

可達性也允許檢查WiFi。 – user523234 2012-02-18 17:46:59

回答

2

您可以使用CNCopySupportedInterfaces()通話。

CFArrayRef interfaces = CNCopySupportedInterfaces(); 
CFIndex count = CFArrayGetCount(interfaces); 

for (int i = 0; i < count; i++) { 
    CFStringRef interface = CFArrayGetValueAtIndex(interfaces, i); 
    CFDictionaryRef netinfo = CNCopyCurrentNetworkInfo(interface); 
    if (netinfo && CFDictionaryContainsKey(netinfo, kCNNetworkInfoKeySSID)) { 
     NSString *ssid = (__bridge NSString *)CFDictionaryGetValue(netinfo, kCNNetworkInfoKeySSID); 
     // Compare with your needed ssid here 
    } 

    if (netinfo) 
     CFRelease(netinfo); 
} 
CFRelease(interfaces); 

以我的經驗,你通常會有陣列中的一個接口,它要麼是一個有效的結構,如果你連接或NULL,如果你不是。爲了以防萬一,我仍然讓for循環在那裏。

__bridge鑄件內部,如果你正在使用ARC才需要。

+0

嘿,如何使用__bridge,是的,我正在爲我的項目使用ARC。我該怎麼辦? – Mrunal 2012-02-19 07:55:36

+0

當您想從不支持ARC支持的對象所有權的函數進行強制轉換時,您可以像我提供的示例那樣使用它。 對於ssid轉換,Xcode實際上爲我插入了__bridge。 – coverback 2012-02-19 08:05:51

+0

怎麼做我得到的錯誤, – Mrunal 2012-02-19 08:18:02

相關問題