2011-08-19 9 views
7

私はReachabilityを自分のアプリケーションにインポートしましたが、あなたのためにハウツーの質問がいくつかあります。私のアプリケーションと他のツールをまず説明しましょう。到達可能性ヘルプ - WiFi検出

このアプリケーションは、同じ時間に2つのものと、アドホックネットワークと、3Gを通じてインターネットと通信します。注:アドホックネットワークはインターネットに接続されていません。これは完全に機能します。既に実装されており、すばらしくテストされています。

これは、Reachabilityを実装して2つのことを検出したいと考えています。

1)ユーザーはWi-Fiアドホックネットワークに接続していますか? (可能であれば、可能であれば、WXYZの接頭辞を持つWifiアドホックネットワークに接続されているかどうかを検出することです。たとえば、LinksysとWXYZ-Testing_Platformという2つのネットワークがリストされている場合、それがWXYZに接続されているかどうか)。

2)ユーザーは3G(または2Gなど)を通じてインターネットに接続し、Googleのサーバーにアクセスできますか?事前に

おかげ

EDIT FUTURE LOOKERSのための答えを含める:1の場合

)は、私のコードは次のようになります。

.h 
#import <SystemConfiguration/CaptiveNetwork.h> //for checking wifi network prefix 

.m 
- (BOOL) connectedToWifi 
{ 

    CFArrayRef myArray = CNCopySupportedInterfaces(); 
    // Get the dictionary containing the captive network infomation 
    CFDictionaryRef captiveNtwrkDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); 

    NSLog(@"Information of the network we're connected to: %@", captiveNtwrkDict); 

    NSDictionary *dict = (__bridge NSDictionary*) captiveNtwrkDict; 
    NSString* ssid = [dict objectForKey:@"SSID"]; 

    if ([ssid rangeOfString:@"WXYZ"].location == NSNotFound || ssid == NULL) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 

そして2用) Reachabilityをインポートし、サーバーに接続するたびにこのメソッドを使用するようにしました。注:サーバ情報

-(void) checkIfCanReachServer 
{ 
UIAlertView *errorView; 
    Reachability *r = [Reachability reachabilityWithHostName:@"http://www.google.com"]; 
    NetworkStatus internetStatus = [r currentReachabilityStatus]; 


    if(internetStatus == NotReachable) { 
     errorView = [[UIAlertView alloc] 
        initWithTitle: @"Network Error" 
        message: @"Cannot connect to the server." 
        delegate: self 
        cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
     [errorView show]; 
    } 
} 

答えて

7

到達可能性を持つは、デバイスが正常にからデータパケットを送ることができるかどうかを知ることができます。 1の場合は )iPhone get SSID without private libraryを参照してください。 2)あなたはインターネット接続を確認するためにのみ到達可能性を使用し、サーバーに到達できるようにNSURLConnectionまたは他のネットワークライブラリを使用する必要があります。

+0

私はこれを今見ていきます、ありがとう! – Baub

関連する問題