我遇到了一些CNCopyCurrentNetworkInfo返回的數據問題,並想知道我是否做錯了什麼。我正確使用CNCopyCurrentNetworkInfo嗎?
我用下面的代碼來顯示當前連接的接入點的BSSID:
NSArray* interfaces = (NSArray*) CNCopySupportedInterfaces();
for (NSString* interface in interfaces) {
CFDictionaryRef networkDetails = CNCopyCurrentNetworkInfo((CFStringRef) interface);
if (networkDetails) {
NSLog(@"all details: %@", (NSDictionary *)networkDetails);
NSLog(@"BSSID: %@", (NSString *)CFDictionaryGetValue (networkDetails, kCNNetworkInfoKeyBSSID));
CFRelease(networkDetails);
}
}
通過審查,就好像CNCopyCurrentNetworkInfo掛到舊數據kCNNetworkInfoKeyBSSID但某些情況下會出現的NSLog語句。
我有兩個接入點設置,我試圖獲得當前連接的AP的BSSID。如果我只開啓一個AP,它將返回正確的BSSID。如果我關閉該AP,則無法獲得BSSID(正確),並且當我打開第二個AP並連接到它時,我會得到第二個AP的正確BSSID。
但是,如果我從啓動一個AP開始運行此代碼並正確給出該AP的BSSID。然後我打開第二個AP,然後關閉第一個AP(強制設備漫遊到第二個AP),日誌語句仍然返回第一個AP(我已經關閉並且不可能連接到)的BSSID。
有沒有人比我有更多的經驗呢?我的意思是手動清除CNCopyCurrentNetworkInfo在調用之間返回的值嗎?
我已經上都有了第四代iPod運行該觸摸運行iOS 4.3使用的Xcode內置4和iPhone 4運行iOS 4.1使用的Xcode 3.2.4
我有同樣的問題,現在在iPhone 4和iOS 5.0.1。我不認爲你已經找到了解決方案。 – 2012-02-07 23:26:11