2010-02-07 5 views
1

utilisant iphone sdk 3.1.2L'exemple d'accessibilité de l'iPhone ne fonctionne pas toujours

J'utilise le code suivant pour vérifier si mon application dispose d'une connexion Internet. J'ai besoin d'obtenir des notifications ou un sondage afin que mon application ait toujours le dernier statut.

hostReach = [[Reachability reachabilityWithHostName: @"www.google.com"] retain]; 
[hostReach startNotifer]; 

puis quand je reçois une notification i utiliser ces fonctions pour me faire connaître l'état du réseau

NetworkStatus netStatus = [hostReach currentReachabilityStatus]; 
BOOL connectionRequired= [hostReach connectionRequired]; 

J'ai trouvé que si je débranche le câble d'alimentation sur mon Netgear Router mon application connaît correctement il a perdu sa connexion internet. Cependant, lorsque je branche l'imprimante sous tension, mon application même si elle reçoit des notifications de la fonction de rappel joignabilité netStatus retourné par

[hostReach currentReachabilityStatus] 

ne l'est jamais égal à ReachableByWifi qui est ce que je veux savoir si l'Internet est disponible par la Connexion Wifi).

Même si j'ai une minuterie tous les 30Secs appeler

[hostReach currentReachabilityStatus] 

il ne retourne pas encore ReachablebyWifi même si clairement le routeur est tout a commencé et Internet est sans aucun doute disponible. C'était une situation pire que je pensais fonctionnerait.

Sur une autre note, si je ne tire la connexion de la ligne téléphonique et de laisser le routeur sous tension (ie signal wifi present0 encore mon application ne soit pas avisé la connexion Internet est en panne.

Comment obtenir sur ces questions ?

Répondre

0

J'ai vécu la même chose. à mon avis, la classe Reachability est squameuse et doit être considéré comme Exemple de code. Quelqu'un devrait réécrire cette chose tout en fonction des commentaires de la communauté. Il y a

+0

Des solutions de contournement ou d'autres moyens pour le faire autre que l'accessibilité – tech74

+0

Eh bien, vous pouvez lire le code source Accessibilité et voir comment il utilise les API de niveau inférieur. –

1

quelques mois, je trouve quelqu'un qui wr ote une meilleure implémentation de Reachability. Vous pouvez le trouver au http://blog.ddg.com/?p=24. Mon entreprise l'utilise dans nos applications et il est beaucoup plus robuste que l'échantillon Apple.

Questions connexes