Я использую Reachability из библиотеки разработчика приложений, чтобы проверить подключение к Интернету, код следующий:
+(BOOL)reachable {
Reachability *r = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [r currentReachabilityStatus];
Reachability *r1 = [Reachability reachabilityForLocalWiFi];
NetworkStatus internetStatus1 = [r1 currentReachabilityStatus];
Reachability *r2 = [Reachability reachabilityWithHostName:FTPURL];
NetworkStatus internetStatus2 = [r2 currentReachabilityStatus];
DLog(@"%d,%d,%d",internetStatus,internetStatus1,internetStatus2);
if(internetStatus != NotReachable && internetStatus1 != NotReachable && internetStatus2 != NotReachable)
{
return YES;
}
return NO;
}
Если Wi-Fi доступен, три статуса обязательно должны быть «Доступен». Если я отключу Wi-Fi вручную (флаг сетевого подключения выключен), все три статуса будут «НЕ достижимы».
Когда я выключаю модем, при этом оставляю беспроводной маршрутизатор открытым (флаг сетевого подключения горит). Хотя я не могу получить доступ к Интернету, все три статуса по-прежнему «Доступны». Я хочу знать, почему это произошло и как определить этот статус «Недостижимость»?