Использование iphone sdk 3.1.2Доступность образца для iPhone не всегда работает
Я использую следующий код, чтобы отслеживать, подключено ли у моего приложения к Интернету. Мне нужно либо получать уведомления, либо опробовать, поэтому мое приложение всегда имеет последний статус.
hostReach = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];
[hostReach startNotifer];
тогда, когда я получаю уведомление я использовать эти функции, дай мне знать состояние сети
NetworkStatus netStatus = [hostReach currentReachabilityStatus];
BOOL connectionRequired= [hostReach connectionRequired];
Я обнаружил, что если я отключите кабель питания от моего Netgear маршрутизатора моего приложение правильно знает его потеряла связь с Интернетом. Однако, когда я подключить питание обратно в моем приложении, хотя он получает уведомления от обратного вызова достижимости NetStatus возвращенного
[hostReach currentReachabilityStatus]
никогда равно ReachableByWifi что и я хочу знать, если Интернет доступен через WiFI).
Даже если у меня есть таймер каждые 30secs позвонить
[hostReach currentReachabilityStatus]
это еще не возвращает ReachablebyWifi даже тогда, когда явно маршрутизатор все началось и Интернет, безусловно, имеется. Это была худшая ситуация, которая, как я думал, будет работать.
На другой ноте, если я только вытаскивать подключение телефонной линии и оставить маршрутизатор включенным (т.е. сигнал Wi-Fi еще present0 мое приложение не получает уведомление о подключение к Интернету вниз.
Как преодолеть эти проблемы ?
Любые обходные пути или другие способы сделать это, кроме достижимости – tech74
Хорошо, вы можете прочитать исходный код возможности и понять, как он использует API нижнего уровня. –