我正在iOS應用程序上工作,我需要檢測網絡是否從Wifi連接更改爲另一個Wifi連接或WiFi和3G之間。如何檢測iOS中的WiFi網絡變化
我試過使用Reachability庫,但它似乎沒有檢測到Wifi連接之間的變化。 我能用什麼?
應用程序的目標應該是App Store,所以我不能使用Apple的私有方法。
更新:經過一些測試後,我發現,使用模擬器測試時,它的工作完美。我收到通知沒有任何問題。可能是iPhone的問題嗎?
在此先感謝
我正在iOS應用程序上工作,我需要檢測網絡是否從Wifi連接更改爲另一個Wifi連接或WiFi和3G之間。如何檢測iOS中的WiFi網絡變化
我試過使用Reachability庫,但它似乎沒有檢測到Wifi連接之間的變化。 我能用什麼?
應用程序的目標應該是App Store,所以我不能使用Apple的私有方法。
更新:經過一些測試後,我發現,使用模擬器測試時,它的工作完美。我收到通知沒有任何問題。可能是iPhone的問題嗎?
在此先感謝
請參考以下鏈接https://stackoverflow.com/a/19256197/1382157
其他方式,
- (BOOL)isReachable {
return [self isReachableViaWWAN] || [self isReachableViaWiFi];
}
- (BOOL)isReachableViaWWAN {// If this return true, means it is connected to 3g
return self.networkReachabilityStatus ==
AFNetworkReachabilityStatusReachableViaWWAN;
}
- (BOOL)isReachableViaWiFi { // If this return true, means it is connected to wifi
return self.networkReachabilityStatus ==
AFNetworkReachabilityStatusReachableViaWiFi;
}
確保你正確初始化類,並做
[self.manager.reachabilityManager startMonitoring];
請參閱第一Reachibility
在.H
Reachability* reachability;
.M類導入類 寫後
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil];
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable)
{
NSLog(@"no");
}
else if (remoteHostStatus == ReachableViaWiFiNetwork)
{
NSLog(@"wifi");
}
else if (remoteHostStatus == ReachableViaCarrierDataNetwork)
{
NSLog(@"cell");
}
.....
- (void) handleNetworkChange:(NSNotification *)notice
{
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable)
{
NSLog(@"no");
}
else if (remoteHostStatus == ReachableViaWiFiNetwork)
{
NSLog(@"wifi");
}
else if (remoteHostStatus == ReachableViaCarrierDataNetwork)
{
NSLog(@"cell");
}
}
https://stackoverflow.com/questions/17652465/capture-wi-fi-network-changing-event -in-ios – KethanKumar
[iOS中捕獲Wi-Fi網絡更改事件]的可能重複(https://stackoverflow.com/questions/17652465/capture-wi-fi-network-changing-event-in-ios) – gvuksic
我已經看到了,但除了設置定時器和檢查SSID之外沒有其他辦法。然後更改不會自動檢測 – RuLoViC