1
當用戶的設備突然連接到無線網絡時是否發出通知?或者這種性質的東西?ios檢測到無線變化
我希望我的應用程序委託中的某個選擇器/方法在用戶連接到無線時運行。我如何知道何時執行我的選擇器?
**編輯**
我最終找到一個IOS 5 ARC friendly version of Reachability如果有人需要它。
當用戶的設備突然連接到無線網絡時是否發出通知?或者這種性質的東西?ios檢測到無線變化
我希望我的應用程序委託中的某個選擇器/方法在用戶連接到無線時運行。我如何知道何時執行我的選擇器?
**編輯**
我最終找到一個IOS 5 ARC friendly version of Reachability如果有人需要它。
您應該包含here的Reachability標頭和實現。
我前段時間做過一個項目,需要在某些時候檢查我是否連接了WiFi。以下是一些可能對您有用的代碼:
- (BOOL) connectedToNetwork
{
// Create zero addy
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
// Recover reachability flags
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags)
{
printf("Error. Could not recover network reachability flags\n");
return 0;
}
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
return ((isReachable && !needsConnection) && !(nonWiFi)) ? YES : NO;
}
如果連接到WiFi,則返回true。
檢測何時發生更改的一種方法是運行NSTimer並檢查結果是否隨時間變化。儘管如此,你不會想太頻繁地運行它。
從Apple檢查此項目:http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html – CarlJ 2012-04-18 13:40:25